我有两个数据库表。两个表具有相同的结构。现在我想从旧表中插入数据到新表,如果数据已经存在,它将更新旧数据,否则插入新数据。我想通过匹配一些列字段值来插入或更新数据。任何帮助?从旧表插入数据到新表
回答
您可以利用MySQL的ON DUPLICATE KEY UPDATE
功能。从MySQL doc -
如果指定了对重复密钥更新,和行插入该 会引起一个唯一索引或主键的重复值时,MySQL 执行旧行的更新。
因此,如果您在表中定义了按键,则可以使用此功能。例如,您的发言看起来就像 -
insert into target_table (col1, col2, ...)
select col1, col2,... from source_table
on duplicate key update
col1 = values(col1),
col2 = values(col2),
Bro是“ON DUPLICATE KEY UPDATE”只检查唯一索引或主键?我还匹配一些列值(如id,fname,lname,email等) –
您必须在这些列上创建至少一个UNIQUE索引,这些列使您的记录唯一 – hashbrown
我的表只有主键(id)独特的索引和表格有一千个数据 –
最好的方法是你可以使用左外连接concept.That会很容易。
INSERT INTO table1
(col_1, col_2, col_3, col_4, col_5) values("","","","")
SELECT
table2_col_1,
table2_col_2,
table2_col_3,
table2_col_4,
1
FROM
table_2 AS t2
LEFT OUTER JOIN
table1 AS t1
ON
t1.col_1 = t2.table2_col_1;
UPDATE table_2
SET table2_col_1 = 'value'// here is the value that you need to implement
WHERE t1.col_1=t2.table2_col_1;//here is your condition
从你的问题,我明白你的table2并不那么重要。 因此,您可以删除整个表格2中存在的值,以便结构不会受到影响。完成后,您可以导出插入查询以实现表格1中存在的值。
兄弟我在旧表中有大约500个数据,在新表中有数千个(旧的加上一些新的)数据,但是遗漏了旧表中的一些数据。现在我想添加从旧桌子 –
- 1. 将数据插入到新的和旧的数据表,从另外两个表
- 2. SQL从旧表中插入新表
- 3. 将数据插入到两个较旧表的新表中
- 4. 插入新的数据到表后清洁旧数据
- 5. 如何从其他表插入数据插入到新表和
- 6. 从列表中插入数据到表
- 7. 从数据库插入数据到表
- 8. 如何从表中插入新数据到另一个表?
- 9. SP从现有表中插入数据到一个新的表
- 10. 从数据表插入新的数据到XML
- 11. 将数据插入新表
- 12. 插入到数据表数据表自
- 13. 在更新任何旧数据时插入多对多表格
- 14. PHP插入表数据代码不插入数据到MSSQL表
- 15. 从列表中插入数据到DB
- 16. 从wordpress插入数据到mysql表
- 17. 从asp.net插入数据到SQL表格
- 18. 从excel插入数据到sql表
- 19. 从表中插入数据
- 20. 从表格插入数据
- 21. 重新载入数据或从表插入数据?
- 22. 如何从HTML表中插入数据到MySQL数据库表
- 23. 从一个表数据插入数据到另一个表
- 24. 如何插入从excel表数据到数据表在asp.net?
- 25. 从数据表插入数据到MySql表
- 26. 从MYSQL数据库插入数据表到一个HTML表
- 27. 从数据表插入数据到excel表
- 28. bltoolkit插入数据到表
- 29. 插入数据到MySQL表
- 30. 插入数据表到PSQL
你已经尝试了什么?你在用什么数据库?你的DB的模式是什么? – Lee