0

我正在尝试制作一个 php 脚本来更新表列结构。

Name                Type         Collation  Attributes      Null    Default
promotion_dt        date                                    No      0000-00-00  

我想更新结构以将 Default 更改为 NULL,然后我想用 NULL 替换所有 0000-00-00 数据。

sql_query 是什么?

4

3 回答 3

1
ALTER TABLE tbl MODIFY promotin_dt DATE DEFUALT NULL;
 UPDATE tbl SET primotion_dt = NULL WHERE promotin_dt = '0000-00-00';
于 2013-11-10T12:46:27.993 回答
1

一种方法是首先更改表以允许为空,然后更改默认值并最后更新等于默认值的现有值;

-- 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';
于 2013-11-10T12:46:41.930 回答
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中,请记住这两个语法 es 是:

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保持列名不变

于 2013-11-10T12:52:13.470 回答