我要在阿里云上实现这样一个功能,从数据库中抽一部分字段,插入到新建表中,新建表要额外加一个主键id,要自增,一直报错,基本代码如下;
CREATE TABLE table_a (
`id` int(11) NOT NULL UTO_INCREMENT,,
`id_card_number` varchar(18) NOT NULL,
PRIMARY KEY (`id`),
KEY (`id_card_number`),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=153
;
INSERT INTO table_a
SELECT a.id_card_number
FROM table_b a
;
求救
CREATE TABLE table_a (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_card_number` varchar(18) NOT NULL,
PRIMARY KEY (`id`),
KEY (`id_card_number`),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=153
;
INSERT INTO table_a(id_card_number)
SELECT a.id_card_number
FROM table_b a
;
解决了
不从更改需求的角度解决问题,谢谢
问题中的sql是默认全列赋值的,但在value里只有一个值,所以报错
在mysql里,id是自增长的情况下,insert的列里面就不要出现id这一列;如果出现就一定要给个值;
id列存在的情况,也不能给null值,mysql在这种场景下会报错,而不是使用自增长给id列赋值;