【问题标题】:How to update all fields from one table to another table in the same database using mySQL?如何使用 mySQL 将一个表中的所有字段更新到同一数据库中的另一个表?
【发布时间】:2013-04-20 19:33:08
【问题描述】:

同一个数据库中有2个结构相同的表。我想使用 mySQL 将所有数据从一个表复制到另一个表。源表的行数可能与目标表相同、更少或更多。

我尝试搜索。我找到了两种方法:

方法#1

TRUNCATE destination;
INSERT INTO destination SELECT * FROM source

方法 #2

DROP TABLE destination;
CREATE TABLE destination SELECT * FROM source

难道没有其他涉及 UPDATE 的方法吗?

【问题讨论】:

  • 更新是针对现有记录的更改。您不会更改现有记录,因此您的选择是 INSERT。
  • 您是否要合并“目的地”中的记录?
  • @MichaelGardner 目标实际上是源的旧副本。
  • Mysql 有REPLACE 是SQL MERGE 的简化版。

标签: mysql sql insert-update create-table insert-into


【解决方案1】:

更新我不这么认为。

你可以Insert

Insert into destination
(
column_1,
column_2,
....
)
SELECT 
column_1,
column_2,
....
FROM source

Note: 目标中提及的列数 = 源中提及的列数

方法#1不会总是有效。

并且方法#2将始终有效

【讨论】:

  • 我不得不问为什么 #1 并不总是有效?假设表结构没有变化。
  • @MichaelGardner 因为当您将数据列从源传输到目标时没有。目标中提及的列数 = 源中提及的列数
  • TY,只是想确保我没有遗漏什么。
猜你喜欢
  • 1970-01-01
  • 2014-02-23
  • 2013-02-20
  • 2015-08-16
  • 2018-06-12
  • 1970-01-01
  • 2018-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多