在MySQL中克隆具有不同ID的行的最简单方法是什么。
例如:
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
答案 0 :(得分:4)
您可以使用子查询:
INSERT INTO
donation (name,price)
SELECT name,price
FROM donation
WHERE product_id = 1
答案 1 :(得分:0)
INSERT INTO产品(名称,价格)VALUES((SELECT name FROM Products WHERE product_id = 1),(SELECT FROM FROM Products WHERE product_id = 2));
答案 2 :(得分:0)
INSERT INTO Products (name, price)
VALUES
((SELECT name, price
FROM Products
WHERE product_id = 1));
答案 3 :(得分:0)
如果要使用单个SQL语句克隆一行,但不能或不想列出所有值,但可以使用主键:
INSERT INTO Products
SELECT *
FROM Products
WHERE product_id = 1
UNION ALL
SELECT *
FROM Products
WHERE product_id = 1
ON DUPLICATE KEY UPDATE product_id=(SELECT MAX(product_id)+1 FROM Products);
这会尝试将该行的两个副本插入到数据库中,并且当第一行插入由于重复的product_id而失败时,它使用ON DUPLICATE KEY
将表中的现有行更新为下一个可用的product_id,插入第二行时可用的原始product_id。