Mysql SQL更新表列默认空查询
我试图制作一个php脚本来更新表列结构Mysql SQL更新表列默认空查询,mysql,sql,sql-server,alter-table,Mysql,Sql,Sql Server,Alter Table,我试图制作一个php脚本来更新表列结构 Name Type Collation Attributes Null Default promotion_dt date No 0000-00-00 我想更新结构以将默认值更改为NULL,然后我想用NULL替换所有0000-00-00数据 sql_查询是什么?一种方法是首先将表更改为允许nul
Name Type Collation Attributes Null Default
promotion_dt date No 0000-00-00
我想更新结构以将默认值更改为NULL,然后我想用NULL替换所有0000-00-00数据
sql_查询是什么?一种方法是首先将表更改为允许null,然后更改默认值,最后更新等于默认值的现有值
ALTER TABLE tbl MODIFY promotin_dt DATE DEFUALT NULL;
UPDATE tbl SET primotion_dt = NULL WHERE promotin_dt = '0000-00-00';
-- 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';
您需要在两个查询中执行此操作:
ALTER TABLE mytable MODIFY promotion_dt date NULL DEFAULT NULL;
其次是:
UPDATE mytable SET promotion_dt=NULL where promotion_dt="0000-00-00";
注意:
正如我刚才从Joachim的回答中了解到的,我们也可以使用CHANGE
,而不是第一个查询中的MODIFY
,记住这两种语法是:
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
保持列名不变谢谢,效果很好!