我正在尝试创建一个PHP脚本来更新表列结构。
Name Type Collation Attributes Null Default
promotion_dt date No 0000-00-00
我想更新结构以将Default更改为NULL,而seccond我想用NULL替换所有的0000-00-00数据。
sql_query是什么?
答案 0 :(得分:1)
ALTER TABLE tbl MODIFY promotin_dt DATE DEFUALT NULL;
UPDATE tbl SET primotion_dt = NULL WHERE promotin_dt = '0000-00-00';
答案 1 :(得分:1)
一种方法是首先改变表以允许null,然后更改默认值并最后更新等于默认值的现有值;
-- Set nullable and update the default
ALTER TABLE myTable CHANGE promotion_dt promotion_dt DATE NULL DEFAULT NULL;
-- Update the old values to the new default
UPDATE myTable SET promotion_dt=NULL WHERE promotion_dt='0000-00-00';
答案 2 :(得分:0)
您需要在2个查询中执行此操作:
ALTER TABLE mytable MODIFY promotion_dt date NULL DEFAULT NULL;
接下来是:
UPDATE mytable SET promotion_dt=NULL where promotion_dt="0000-00-00";
注意:强>
正如我刚刚从Joachim上面的回答中了解到的那样,在第一个查询中我们也可以使用MODIFY
而不是CHANGE
,请记住这两个语法是:
ALTER TABLE mytable
| CHANGE [COLUMN] old_col_name new_col_name column_definition
[FIRST|AFTER col_name]
| MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
也就是说,CHANGE
允许更改列名称,因此需要两个列名称,而MODIFY
则保持列名称不变。