首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何更改列和更改默认值?

如何更改列和更改默认值?
EN

Stack Overflow用户
提问于 2012-07-03 21:51:43
回答 7查看 366.7K关注 0票数 229

在尝试更改列的数据类型并设置新的默认值时,我遇到了以下错误:

代码语言:javascript
复制
ALTER TABLE foobar_data ALTER COLUMN col VARCHAR(255) NOT NULL SET DEFAULT '{}';

错误1064 (42000):您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,了解要在第1行

中使用的正确语法

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-07-03 21:54:10

代码语言:javascript
复制
ALTER TABLE foobar_data MODIFY COLUMN col VARCHAR(255) NOT NULL DEFAULT '{}';

第二种可能性也是如此(感谢juergen_d):

代码语言:javascript
复制
ALTER TABLE foobar_data CHANGE COLUMN col col VARCHAR(255) NOT NULL DEFAULT '{}';
票数 321
EN

Stack Overflow用户

发布于 2015-01-13 01:28:22

作为后续,如果您只想设置默认值,您可以使用ALTER ..设置语法。别把其他东西都放进去。如果要将列定义的其余部分放入其中,请根据接受的答案使用MODIFY或CHANGE语法。

无论如何,设置列默认值的ALTER语法(因为这就是我来这里时要找的内容):

代码语言:javascript
复制
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'literal';

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

票数 142
EN

Stack Overflow用户

发布于 2017-09-06 17:41:08

如果您想为已经创建的列添加一个默认值,这对我来说是可行的:

代码语言:javascript
复制
ALTER TABLE Persons
ALTER credit SET DEFAULT 0.0;
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11312433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档