MySQL - 使用新 ID 插入表

标签 mysql sql

我有两个表,我想将一行从一个表复制到另一个表。但是,它们都使用自动递增的 ID 号作为主键,如果 ID 已存在于另一个表中,这会阻止我复制行。

我想做的是:

INSERT INTO tableB SELECT * FROM tableA WHERE ID = 1

我的想法可能是将行存储为一个变量,暂时将 ID 设置为空白,然后在插入到新表中时为其分配下一个最大的数字?

这样的事情可能吗?

编辑:

ID, Deal_ID, Redeemed_At, Wowcher_Code, Deal_Title, Customer_Name, House_Name_Number, Address_Line_1, Address_Line_2, City, County, Postcode, Email, Phone, Date_of_Birth, Custom_Field, Marketing_Permission, Product_Name, Product_Options

最佳答案

在这种情况下,您不能使用 *(所有列).. 您必须明确设置所需的列,例如:

INSERT INTO tableB (col1, col2, col3) 
SELECT col1, col2, col3 
FROM tableA 
WHERE ID = 1

避免 ID 列

关于MySQL - 使用新 ID 插入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44633771/

相关文章:

php - mysql 查询 union 和 mysql_num_rows

mysql - 如何使用 rails 运行简单的 MYSQL 查询

php - Codeigniter 3插入查询失败

c# - 如何验证批量插入中的数据

python - 在 SQLalchemy 中过滤左连接

mysql - 如何创建多个 CURRENT_TIMESTAMP 列?

c# - 目前不支持 5.6 之前的 MySQL 版本

sql - 无法将数据插入表中

java - 使用 Hibernate 将 PostgreSQL 的 refcursor 映射到 java 实体

php - 为初学者优化 MySQL 查询(添加索引、重写查询、使用解释等)?