在我的一个表中,我有一个包含一些空值和一些整数值的列。当我使用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