如何解决SQL查询中的语法错误

时间:2018-12-17 09:33:53

标签: mysql ddl

查询错误:

ALTER TABLE `cms_users` ADD `show_on_web` TINYINT(4)  NOT NULL  DEFAULT '1';

我得到了错误:

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的'NOT NULL DEFAULT'1'附近使用

我不确定是什么错误。

要验证查询-http://sqlfiddle.com

3 个答案:

答案 0 :(得分:1)

您可以在下面尝试-您需要添加列,并且默认值是1而不是“ 1”,因为您的数据类型是tinyint

ALTER TABLE `cms_users` 
ADD column `show_on_web` TINYINT(4)  NOT NULL DEFAULT 1

答案 1 :(得分:0)

fa06发布,您在COLUMN之后丢失了ADD

此外,您的DEFAULT子句存在类型不匹配(引号表示VARCHAR而不是TINYINT)。

尝试一下:

ALTER TABLE `cms_users` ADD COLUMN `show_on_web` TINYINT(4)  NOT NULL  DEFAULT 1;

PS:由于某种原因,SQLFiddle今天对我不起作用。但是,我只是尝试了以下方法:

CREATE TABLE cms_users (
    id INT
    );

ALTER TABLE `cms_users` ADD COLUMN `show_on_web` TINYINT(4) NOT NULL DEFAULT 1;

https://paiza.io/en/languages/mysql上,它没有显示任何编译错误。

答案 2 :(得分:0)

将其更改为:

ALTER TABLE `cms_users` ADD COLUMN `show_on_web` TINYINT(4)  NOT NULL  DEFAULT 1;

我添加了一个COLUMN词,并删除了默认值的引号。

因为它是TINYINT-Integer,所以需要使用1而不是'1'。 因为“ 1”是字符串。