You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL执行建表SQL时报第25行CREATE TABLE users附近语法错误如何解决

错误产生原因

报错提示的第25行是你提交的SQL脚本中CREATE TABLE users语句的起始行,实际错误根源来自第一张characters表的语法规则冲突,具体有两个核心诱因:

  • AUTO_INCREMENT列属性不合法:三张表的主键id都定义为INT(11) NULL AUTO_INCREMENT,MySQL要求AUTO_INCREMENT修饰的列必须为NOT NULL属性,严格模式下该定义会直接触发语法错误。
  • 零值日期默认值非法:characters表的dob字段默认值设为'0000-00-00'、deletion_date字段默认值设为'0000-00-00 00:00:00',MySQL 5.7及以上版本默认开启NO_ZERO_DATE SQL模式,禁止日期/时间类型使用全0值作为默认值,会导致第一张表创建失败,执行到下一条建表语句时抛出错误。
排查修复方案

按以下步骤修改即可正常执行:

  1. 把三张表的id字段定义统一修改为INT(11) NOT NULL AUTO_INCREMENT,符合AUTO_INCREMENT列的语法要求。
  2. 调整characters表的非法日期默认值,二选一即可:
    • 方案一(推荐):替换为合法日期值,比如dob默认值改为'1970-01-01',deletion_date默认值改为'1970-01-01 00:00:00';如果业务允许,也可以将字段设为允许NULL,默认值改为NULL。
    • 方案二(兼容旧业务):建表前先执行SET sql_mode = '';临时关闭当前会话的严格模式和零日期限制,建表完成后再恢复原有SQL模式即可。

修复后的完整SQL示例:

CREATE TABLE `characters` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `owner` VARCHAR(50) DEFAULT NULL,
  `first_name` VARCHAR(50) NOT NULL DEFAULT 'John',
  `last_name` VARCHAR(50) NOT NULL DEFAULT 'Doe',
  `date_created` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
  `cash` INT(9) DEFAULT 500,
  `bank` INT(9) NOT NULL DEFAULT 5000,
  `phone_number` BIGINT(11) NOT NULL DEFAULT 0,
  `dob` DATE NOT NULL DEFAULT '1970-01-01',
  `story` TEXT NOT NULL,
  `new` INT(1) NOT NULL DEFAULT 1,  
  `deleted` INT(11) NOT NULL DEFAULT 0,
  `deletion_date` TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:00',
  `gender` INT(1) NOT NULL DEFAULT 0,
  `jail_time` INT(11) NOT NULL DEFAULT 0,
  `dirty_money` INT(11) NOT NULL DEFAULT 0,
  `gang_type` INT(11) NOT NULL DEFAULT 0,
  `jail_time_mobster` INT(11) NOT NULL DEFAULT 0,
  `judge_type` INT(11) NOT NULL DEFAULT 0,
  `iswjob` INT(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (id)
);

CREATE TABLE `users` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `hex_id` VARCHAR(100) DEFAULT NULL,
  `steam_id` VARCHAR(50) DEFAULT NULL,
  `community_id` VARCHAR(100) DEFAULT NULL,
  `license` VARCHAR(255) DEFAULT NULL,
  `name` VARCHAR(255) NOT NULL DEFAULT 'Uknown',
  `ip` VARCHAR(50) NOT NULL DEFAULT 'Uknown',
  `rank` VARCHAR(50) NOT NULL DEFAULT 'user',
  `date_created` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (id)
);

CREATE TABLE `users_whitelist` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `steam_id` VARCHAR(50) DEFAULT NULL,
  `power` INT(11) NOT NULL DEFAULT 0,
  `admin_name` TEXT NOT NULL,
  `user_name` TEXT NOT NULL,
  `user_ip` TEXT NOT NULL,
  PRIMARY KEY (id)
);

内容的提问来源于stack exchange,提问作者IMRP SERVER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 07:24:07