mysql - 从 select 创建表,然后通过在 mysql 中添加自动增量列来更改表

标签 mysql select auto-increment

如主题中简要说明的那样,我需要通过选择现有值来创建一个表。 我想要实现的是让另一列具有自动递增值。

这是我已经尝试过的:

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 语法错误,告诉我列数与值数不匹配。

你知道这是否有可能实现吗?

谢谢

最佳答案

您应该提供要插入到 temp_tb 中的列的名称:

INSERT INTO temp_tb (stm_id, descr) (
  select stm_id,descr from tb_export
)

关于mysql - 从 select 创建表,然后通过在 mysql 中添加自动增量列来更改表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4660381/

相关文章:

mysql - 在前 10 个字符中查找字符串

sql-server - SQL Server,如何设置建表后自增而不丢失数据?

mysql - 使用变量设置mysql INNODB AUTO_INCRMENT表值

java - 如何创建自增主键?

php - MySQL 使用 sum 获取表

c# - 无法反序列化从其他应用程序保存的属性类型数组

mysql - 不选择任何表列的查询 - 我是否理解正确?

php - Laravel、Dropzone.js、Apache 文件上传超时

java - JDBC ResultSet.getString 在结果集异常开始/结束之前/之后

mysql查看哪些用户对某个表有select权限