创建或修改MySql Workbench表时遇到错误

时间:2019-05-08 22:28:28

标签: mysql sql

我已经遇到了

  

错误代码:1292截断了错误的DOUBLE值

尝试修改表时。尝试移动列的位置(即交换col1和col2)或删除列时,将发生此错误。

我想做的是从表中删除一列及其所有数据,并重新组织我当前的列。 我尝试过的只是删除一列。

alter table test_table drop col4

这给了我错误。

  

ALTER TABLE test_table DROP COLUMN col4错误代码:1292。截断了错误的DOUBLE值:'f'

然后我尝试创建一个仅插入我想要的信息的新表。

create table clean_test AS
SELECT col11, col1, col9, col2, col3, col10, col5, col6, col7, col8
FROM db.test_table;

但是又遇到了错误

  

col10,col1,col9,col2,col3,col11,col5,col6,col7,col8 FROM db.test_table   错误代码:1292。截断了错误的DOUBLE值:'f'

这是源表的原始create语句:

CREATE TABLE `test_table` (
`col1` varchar(45) DEFAULT NULL,
`col2` varchar(45) DEFAULT NULL,
`col3` varchar(45) DEFAULT NULL,
`col4` varchar(45) DEFAULT NULL,
`col5` varchar(45) DEFAULT NULL,
`col6` varchar(45) DEFAULT NULL,
`col7` varchar(45) DEFAULT NULL,
`col8` varchar(45) DEFAULT NULL,
`col10` varchar(45) GENERATED ALWAYS AS (substr(`col1`,6,2)) VIRTUAL,
`col11` varchar(45) GENERATED ALWAYS AS (concat(floor(`col3`),if((`col2` > 2),_utf8mb4'A',if((`col2` > 1),_utf8mb4'B',if((`col2` > 0),_utf8mb4'C',if((`col2` > -(1)),_utf8mb4'F',_utf8mb4'F')))))) VIRTUAL,
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6183 DEFAULT CHARSET=utf8mb4 
COLLATE=utf8mb4_0900_ai_ci;

我正在运行MySql Workbench 8.0.15 CE

有什么建议可以解决这个问题?

0 个答案:

没有答案