MySQL - 如何修改列默认值?
Posted
技术标签:
【中文标题】MySQL - 如何修改列默认值?【英文标题】:MySQL - How to modify column default value? 【发布时间】:2014-01-04 04:59:24 【问题描述】:如何将列的默认值从无更改为其他值?例如,如果我在创建行时没有指定日期,我希望我的日期具有默认值 0000-00-00。
我在 phpMyAdmin 中理解这一点,但我不确定如何通过命令提示符进行操作。
我也了解如何在添加列时执行此操作。但我所有的专栏都是制作的,其中一些有数据。
ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;
通过搜索,我找到了这一行,但我不确定这是否是我想要的?
ALTER TABLE foobar_data MODIFY COLUMN col VARCHAR(255) NOT NULL DEFAULT '';
【问题讨论】:
您之前的列类型是什么? 我正在尝试修改 DATE 和 INT 列。 小心0000-00-00
,因为它不在有效的日期范围内。 dev.mysql.com/doc/refman/5.7/en/datetime.html
【参考方案1】:
使用ALTER TABLE 来CHANGE 或MODIFY 列的DEFAULT 值。检查此链接ALTER TABLE SYNTAX
ALTER TABLE `tableName` CHANGE `columnName` `columnName` DATE DEFAULT '0000-00-00';
ALTER TABLE `tableName` MODIFY `columnName` DATE DEFAULT '0000-00-00';
【讨论】:
这会将 0000-00-00 应用于我当前没有的所有旧行,还是我需要运行查询来更改这些? @macdonjo 它会将0000-00-00
应用于列中字段为null
的所有行。【参考方案2】:
试试这个
ALTER TABLE foobar_data CHANGE COLUMN col VARCHAR(255) NOT NULL DEFAULT '';
用户更改以更改现有列
见Link
【讨论】:
【参考方案3】:就我而言,它有效
ALTER TABLE `table_name` CHANGE `col_name` `col_name_again` VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'anydefault_text';
希望对你也有帮助。
【讨论】:
以上是关于MySQL - 如何修改列默认值?的主要内容,如果未能解决你的问题,请参考以下文章