在 MySQL 中复制行的最简单方法
在 MySQL 中克隆具有不同 ID 的行的最简单方法是什么。
例如:
Products
product_id name price
------------------------
1 a 10
2 b 15
它看起来很奇怪,但我需要使用 id = 1
克隆产品。因此该表将如下所示:
产品
product_id name price
------------------------
1 a 10
2 b 15
3 a 10
what's the easiest way of to clone a row with a different ID in MySQL.
For example:
Products
product_id name price
------------------------
1 a 10
2 b 15
It looks like weird, but I need to clone product with id = 1
. So the table will look like:
Products
product_id name price
------------------------
1 a 10
2 b 15
3 a 10
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用
子查询:You can use
subqueries:INSERT INTO Products (名称, 价格) VALUES ((从产品中选择名称,其中product_id = 1), (从产品中选择价格,其中product_id = 2));
INSERT INTO Products (name, price) VALUES ((SELECT name FROM Products WHERE product_id = 1), (SELECT price FROM Products WHERE product_id = 2));
如果您想使用单个 SQL 语句克隆一行,并且不能或不想列出所有值,但有一个主键,您可以使用:
这会尝试将该行的两个副本插入数据库,并且当第一行插入由于重复的product_id而失败,它使用
ON DUPLICATE KEY
将表中的现有行更新为下一个可用的product_id,这使得原始product_id在插入第二行时可用。If you want to clone a row with a single SQL statement and can't or don't want to list all the values but there is a primary key you can use:
This tries to insert two copies of the row into the databse and when the first row insert fails due to a duplicate product_id it uses
ON DUPLICATE KEY
to update the existing row in the table to the next available product_id, which leaves the original product_id available for when the second row is inserted.