【发布时间】:2019-12-19 20:46:01
【问题描述】:
MYSQL 5.7 表有 3 个类型为 DATETIME '0000-00-00 00:00:00' 的字段如何在 NOT NULL + DATETIME 默认设置为 '0000-00-00 00:00 时将新结构更改为 DEFAULT NULL: 00'。总共超过 190.00 条记录。
当对结构进行更改时,MYSQL 发现有超过 1 个字段存在相同问题,并且不会更改任何字段。 我该如何解决这个问题?
CREATE TABLE `customers1` (
`customers_id` int( 11 ) NOT NULL ,
`customers_date_added` datetime DEFAULT '0000-00-00 00:00:00',
`customers_dob` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`customers_last_modified` datetime DEFAULT '0000-00-00 00:00:00',
`customers_active` tinyint( 1 ) DEFAULT '1'
) ENGINE = InnoDB DEFAULT CHARSET = utf8
ALTER TABLE `customers1` CHANGE `customers_date_added` `customers_date_added` datetime NULL ;
我希望并且需要将这些日期时间字段更正为 NULL 而不是 '0000-00-00 00:00:00'。 我发现的问题是在我的情况下,这个旧设置有超过 1 个日期时间字段。
【问题讨论】:
-
你的 SQL Alter 命令是什么,它产生了什么错误信息?
-
MySQL 有一个表中有多个
DEFAULT CURRENT_TIMESTAMP设置的问题,设置为DEFAULT NULL必须有效。
标签: mysql