将数据从一个MariaDB SQL表复制到已具有所有相同列的另一表的最简单方法是什么。基本上,我们有一个包含一些示例数据的备份表(crdynamics.customer_records_backup
),我想将该数据复制到另一个表(crdynamics.customer_records
)中。同样,这些是相同的表-只有一个表具有数据,而一个表没有数据。
实现此目的最简单的语法是什么?
我尝试过,但是语法不正确:
UPDATE crdynamics.customer_records
SELECT *
FROM
crdynamics.customer_records_backup
答案 0 :(得分:3)
您似乎只想要INSERT
而不是UPDATE
。
INSERT crdynamics.customer_records (<ColumnList>)
SELECT
<ColumnList>
FROM
crdynamics.customer_records_backup;
从技术上讲,您可以执行以下操作:
INSERT crdynamics.customer_records
SELECT
*
FROM
crdynamics.customer_records_backup;
但是始终指定列名的可能性要小得多。
答案 1 :(得分:0)
您可以使用insert into select语句
insert into crdynamics.customer_records
SELECT * FROM crdynamics.customer_records_backup
where 1=1;
答案 2 :(得分:0)
CREATE TABLE new_backup LIKE real_table;
INSERT INTO new_backup SELECT * FROM real_table;
RENAME TABLE backup TO old_backup, new_backup TO backup;
DROP TABLE old_backup;
注意:
backup
始终存在并已填充,与涉及TRUNCATE
等的情况不同。CREATE .. LIKE
和RENAME
,即使当前模式已更改,您也可以获取当前模式。RENAME
是原子的。INSERT .. SELECT
,real_table
阻止了其他活动。INSERT .. SELECT
的答案无法说明第二备份的结果。