如何更改列并更改默认值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

尝试更改列的数据类型并设置新的默认值时出现以下错误:

ALTER TABLE foobar_data ALTER COLUMN col VARCHAR(255) NOT NULL SET DEFAULT '{}';

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

提问于
用户回答回答于
ALTER TABLE foobar_data MODIFY COLUMN col VARCHAR(255) NOT NULL DEFAULT '{}';

第二种可能性是相同的

ALTER TABLE foobar_data CHANGE COLUMN col col VARCHAR(255) NOT NULL DEFAULT '{}';
用户回答回答于

作为后续,如果你只是想设置一个默认值,那么确定你可以使用ALTER .. SET语法。只是不要把所有其他的东西放在那里。如果你要将列定义的其余部分放入其中,请根据接受的答案使用MODIFY或CHANGE语法。

无论如何,用于设置列的ALTER语法默认,(因为这是我到这里时正在寻找的):

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'literal';

对于哪个'文字'也可以是一个数字(例如...SET DEFAULT 0)。我没有尝试过,...SET DEFAULT CURRENT_TIMESTAMP但为什么不呢?

扫码关注云+社区