MySQL数据库初始化character表时出现SQL语法错误求助
解决MySQL创建
character表的语法错误 问题1:表名使用了MySQL保留关键字
character是MySQL的保留关键字,直接作为表名会触发语法错误。你需要用反引号`将表名包裹起来,或者修改表名为非保留字(比如characters)。
问题2:数值类型字段设置了字符串默认值
所有INT类型的字段(game_wins、game_losses等)不能将字符串'N/A'作为默认值——数值类型只能使用数值或NULL作为默认值。你可以将默认值改为0,或者允许字段为NULL并设置DEFAULT NULL。
修正后的SQL代码
方案1:保留原表名(用反引号包裹)
CREATE TABLE `character` ( character_id INT PRIMARY KEY, first_name VARCHAR(20) NOT NULL, last_name VARCHAR(20) NOT NULL, branch VARCHAR(40) NOT NULL, game_wins INT(5) DEFAULT 0, game_losses INT(5) DEFAULT 0, match_wins INT(6) DEFAULT 0, match_ties INT(6) DEFAULT 0, match_losses INT(6) DEFAULT 0, match_no INT(6) DEFAULT 0 );
方案2:修改表名为非保留字(推荐)
CREATE TABLE characters ( character_id INT PRIMARY KEY, first_name VARCHAR(20) NOT NULL, last_name VARCHAR(20) NOT NULL, branch VARCHAR(40) NOT NULL, game_wins INT(5) DEFAULT NULL, game_losses INT(5) DEFAULT NULL, match_wins INT(6) DEFAULT NULL, match_ties INT(6) DEFAULT NULL, match_losses INT(6) DEFAULT NULL, match_no INT(6) DEFAULT NULL );
内容的提问来源于stack exchange,提问作者JCam989
相关产品推荐
相关产品推荐

