正如在主题中简要解释的那样,我需要通过选择现有值来创建表。 我想要实现的是让另一列具有自动递增值。
这是我已经尝试过的:
CREATE TEMPORARY TABLE temp_tb (
`row_id` bigint(20) NOT NULL AUTO_INCREMENT,
`stm_id` bigint(20) NOT NULL,
descr varchar(20) NOT NULL,
PRIMARY KEY (row_id)
);
然后选择:
INSERT INTO temp_tb (
select stm_id,descr from tb_export
)
我原本希望在插入时预填充row_id列,但是我只是在sql语法错误时告诉我列数与值计数不匹配。
你知道这是否有可能实现吗?
感谢
答案 0 :(得分:1)
您应该提供要插入temp_tb的列的名称:
INSERT INTO temp_tb (stm_id, descr) (
select stm_id,descr from tb_export
)
答案 1 :(得分:0)
如果我没有弄错,语法错误与您的插入语法有关。你有一个temp_tb有3个字段,都不是null。您使用insert语句在该表中插入2个字段。 MySQL ref使用select as:
列出insert的语法INSERT INTO tbl_temp2(fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id> 100;