Mysql默认值仅适用于新记录

时间:2016-12-23 13:55:40

标签: mysql

是否可以仅在mysql列中为新记录设置默认值?

如果没有输入任何内容,我希望今天之前的所有行都为null,但是如果没有为该列输入任何内容,则今天之后添加的任何新行都将成为特定字符串。

这可能吗?

2 个答案:

答案 0 :(得分:2)

搜索表中的所有行并检查特定列是否为空,如果是,则将其设置为空。

UPDATE tablename SET column = CASE column WHEN '' THEN NULL ELSE column END

对于将来的条目,您可以向表中添加默认约束,如下所示:

ALTER TABLE tablename ALTER column SET DEFAULT 'specific string'

答案 1 :(得分:0)

这是一篇旧帖子,但我确实认为这个答案可能对其他人有所帮助。

ALTER TABLE object_table_name ADD `value` INT NULL;
ALTER TABLE object_table_name MODIFY COLUMN `value` INT DEFAULT 0;

这样做只会影响新插入的记录,这段代码对我不起作用

ALTER TABLE object_table_name ADD  `value` INT DEFAULT 0

我使用的是 MySQL 5.6