SQL:将所有没有默认值的列的默认值设置为NULL

时间:2019-03-27 10:33:01

标签: mysql sql phpmyadmin mariadb

我使用的虚拟主机已为数据库启用了StrictMode。我的所有PHP脚本现在都停止工作,因为它们报告我尚未为某些列定义默认值。

由于我在很多表中都有很多列,是否有办法将所有列设置为“默认值=无”和“默认值= NULL”? 这样,它将不再向我报告错误。

当然,如果还有另一种(更好)的方法,我可以使用。

我尝试过上网查找,但是找不到适合这种情况的任何东西。

2 个答案:

答案 0 :(得分:0)

您可以更改列

ALTER TABLE table_name
 MODIFY COLUMN col datatype  DEFAULT null

答案 1 :(得分:0)

这里应该为引起错误的每一列工作的通用方法是设置默认值,然后进行更新以回填缺少值的记录。

ALTER TABLE yourTable ALTER some_text_column SET DEFAULT 'None';

这是更新:

UPDATE yourTable SET some_text_column = 'None' WHERE some_text_column IS NULL;

您不需要执行此更新,但是将旧记录丢失的值与新记录的外观保持一致可能是有意义的。