更改新默认失败的表

时间:2014-07-24 20:43:44

标签: mysql

我正在尝试更新表并将两列上的默认值更改为0而不是NULL。问题是alter命令失败,因为许多行对这些列都有空值。有没有办法可以运行alter命令,如果遇到一个带有NULL值的行,在一个命令中将其设置为0?我可以使用查询来更新具有NULL值的行,但我希望能够使用Percona Toolkit运行一个alter命令,这将允许在线alter table命令。

2 个答案:

答案 0 :(得分:1)

您需要先更新自己的表格,然后将null值更改为0

update your_table 
set col = 0 where col is null;

alter table your_table 
change col 
       col int not null default 0;

SQLFiddle demo

答案 1 :(得分:0)

这样的事情怎么样?

UPDATE mysql.table_name
SET column_name = IFNULL(column_name,'0')