尝试更改列的数据类型并设置新的默认值时出现以下错误:
ALTER TABLE foobar_data ALTER COLUMN col VARCHAR(255) NOT NULL SET DEFAULT '{}';
Run Code Online (Sandbox Code Playgroud)
错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第1行的'VARCHAR(255)NOT NULL SET DEFAULT'{}''附近使用正确的语法
fan*_*nts 246
ALTER TABLE foobar_data MODIFY COLUMN col VARCHAR(255) NOT NULL DEFAULT '{}';
Run Code Online (Sandbox Code Playgroud)
第二种可能性(感谢juergen_d):
ALTER TABLE foobar_data CHANGE COLUMN col col VARCHAR(255) NOT NULL DEFAULT '{}';
Run Code Online (Sandbox Code Playgroud)
小智 104
作为后续操作,如果您只想设置默认值,请确保您可以使用ALTER .. SET语法.只是不要把所有其他的东西放在那里.如果您要将列的其余部分放入其中,请根据接受的答案使用MODIFY或CHANGE语法.
无论如何,用于设置列默认值的ALTER语法(因为这是我来到这里时所寻找的):
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'literal';
Run Code Online (Sandbox Code Playgroud)
其中'文字'也可以是数字(例如...SET DEFAULT 0).我没试过,...SET DEFAULT CURRENT_TIMESTAMP但为什么不呢?
小智 14
如果要为已创建的列添加默认值,这对我有用:
ALTER TABLE Persons
ALTER credit SET DEFAULT 0.0';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
282439 次 |
| 最近记录: |