在我的一個表中,我有一個包含一些空值和一些整數值的列。當我使用MySQL Workbench爲該列設置默認值和非空值時,會出現截斷錯誤。MySQL截斷錯誤
當我的同事執行相同的操作,他的作品申請和空值設置爲0
唯一明顯不同的是,他正在運行MySQL服務器5.6和我運行5.5。
一個例子表可以與創建下面的CREATE:
CREATE TABLE 'resource`.`test_table` (
`idtest_table` INT NOT NULL ,
`bad_column` BIGINT(20) NULL ,
PRIMARY KEY (`idtest_table`));
插入一些值如下:
INSERT INTO `resource`.`test_table` (`idtest_table`) VALUES (1);
INSERT INTO `resource`.`test_table` (`idtest_table`) VALUES (2);
INSERT INTO `resource`.`test_table` (`idtest_table`) VALUES (3);
發生故障的命令是:
ALTER TABLE `resource`.`test_table` CHANGE COLUMN `bad_column` `bad_column` BIGINT(20) NOT NULL DEFAULT 0 ;
與出現以下錯誤:
ERROR 1265: Data truncated for column 'bad_column' at row 1
SQL Statement:
ALTER TABLE `resource`.`test_table` CHANGE COLUMN `bad_column` `bad_column` BIGINT(20) NOT NULL DEFAULT 0
ERROR: Error when running failback script. Details follow.
ERROR 1050: Table 'test_table' already exists
SQL Statement:
CREATE TABLE `test_table` (
`idtest_table` int(11) NOT NULL,
`bad_column` bigint(20) DEFAULT NULL,
PRIMARY KEY (`idtest_table`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
在MySQL配置中有沒有設置允許這個?它是版本嗎?
提供確切的DDL查詢和錯誤信息 – zerkms
您可以發佈完整的錯誤消息,你獲得,請與表的創建語句您有問題請改變? – llanato