我在 HeidiSQL 中创建了一个表:
CREATE TABLE `publish_dt` (
`ID` BIGINT(20) NOT NULL AUTO_INCREMENT,
`TS` DATETIME NULL DEFAULT NULL,
`Text` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_unicode_ci',
PRIMARY KEY (`ID`) USING BTREE
)
COLLATE='utf8mb4_unicode_ci'
ENGINE=InnoDB
AUTO_INCREMENT=2
;
然后我将一些数据插入表中,例如
INSERT INTO publish_dt (`Text`) VALUES ('Hello')
然后我想将TS
列更改为非NULL
,默认值为“1001-01-01 00:00:00”。我尝试在 HeidiSQL 中执行此操作,它产生以下ALTER TABLE
查询:
ALTER TABLE `publish_dt`
CHANGE COLUMN `TS` `TS` DATETIME NOT NULL DEFAULT '1001-01-01 00:00:00' AFTER `ID`;
但是,当我尝试在 HeidiSQL 中保存更改时,我从数据库收到以下错误:
SQL Error (1265): Data truncated for column 'TS' at row 1
请您澄清为什么会发生此错误(我DATETIME
在互联网上找不到相同的情况)以及如何解决?
问的原因:MariaDB 文档说
MariaDB 以支持 1000-01-01 00:00:00.000000 和 9999-12-31 23:59:59.999999 之间的值的格式存储使用 DATETIME 数据类型的值。