我有一个名为practice
的表,其中存在名字列,我正在尝试执行以下查询。
alter table practice alter firstname not null ;
我正在使用这种语法:
1064 - 您的SQL语法出错;检查与您的MariaDB服务器版本对应的手册,以便在#var; varchar not null'附近使用正确的语法。在第1行
需要澄清语法错误。
答案 0 :(得分:0)
在更改列时,您必须指定datatype
并使用Modify
关键字以设置nullor not null参数
例如:
alter table practice modify firstname varchar(25) not null ;
答案 1 :(得分:0)
ALTER TABLE practice MODIFY firstname varchar(64) NOT NULL;
提醒:在使用MODIFY查询时,需要再次指定完整列定义。例如,如果您的列具有DEFAULT值或列注释,则需要在MODIFY语句中将其与数据类型和NOT NULL一起指定,否则它将丢失。防范此类错误的最安全做法是从SHOW CREATE TABLE YourTable查询的输出中复制列定义,将其修改为包含NOT NULL约束,并将其粘贴到ALTER TABLE ... MODIFY ...查询中。
参考:How to add not null constraint to existing column in MySQL5.1