在MySQL中复制行的一种好方法是使用INSERT INTO ... SELECT FROM语法.
例如:
INSERT INTO tblExample (col1, col2, col3)
SELECT col1, col2, col3 FROM tblExample WHERE pkey = 1234;
Run Code Online (Sandbox Code Playgroud)
这很容易和直接,但从代码维护的角度来看,这是另一个用于跟踪是否存在任何架构更改的语句.假设我在tblExample表中添加了一个额外的列col4; 现在我必须记得在我的代码中返回并更新此SQL语句.如果我没有这样做,那么我刚刚介绍了一个错误.
考虑到这一点,除了主键之外,是否有一种简单的方法来复制整行,无论模式如何?
一种有点不优雅的方式:
CREATE TEMPORARY TABLE tmpTable ENGINE=MEMORY SELECT * FROM realTable WHERE pk = 'something';
UPDATE tmpTable SET pk = 'something else' ;
INSERT INTO realTable SELECT * FROM tmpTable;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |