这是我想要的achieve:-
从表t中获取一些行(x)。
在所有x行中更改一个列值(f)。
然后将这些x作为新行插入到同一个表t中。
此过程不适用于此error:-
不能在from子句中为update指定目标表“t”
这是我的程序
DELIMITER //
DROP procedure IF EXISTS copy_values //
CREATE PROCEDURE copy_values(
IN source_id char(36),
IN dest_id char(36))
BEGIN
INSERT INTO t (a, b, c, d, e, f)
VALUES (
(SELECT a FROM t WHERE t_cid=source_id),
(SELECT b FROM t WHERE t_cid=source_id),
(SELECT c FROM t WHERE t_cid=source_id),
(SELECT d FROM t WHERE t_cid=source_id),
(SELECT e FROM t WHERE t_cid=source_id),
dest_id
);
END //
DELIMITER ;
你能为解决这个用例提出一个替代查询吗?
1条答案
按热度按时间nwnhqdif1#
一
INSERT ... SELECT ...
应该有用。