在同一MySQL表中复制/复制记录
我已经寻找了一段时间,但找不到适合我问题的简单解决方案。我想在表中复制一条记录,但是当然,唯一的主键需要更新。
我有这个查询:
INSERT INTO invoices SELECT * FROM invoices AS iv WHERE iv.ID=XXXXX
ON DUPLICATE KEY UPDATE ID = (SELECT MAX(ID)+1 FROM invoices)
问题在于,这只是更改ID
行的,而不是复制行。有人知道如何解决这个问题吗?
// edit:我想在不键入所有字段名称的情况下执行此操作,因为字段名称会随着时间变化。
回答:
我通常使用的方法是使用临时表。它可能在计算上效率不高,但看起来还可以!在这里,我要完全复制记录99,创建记录100。
CREATE TEMPORARY TABLE tmp SELECT * FROM invoices WHERE id = 99;UPDATE tmp SET id=100 WHERE id = 99;
INSERT INTO invoices SELECT * FROM tmp WHERE id = 100;
希望对您有用!
以上是 在同一MySQL表中复制/复制记录 的全部内容, 来源链接: utcz.com/qa/398250.html