我有一个名为tbl_requests
和tbl_friends
的表,我知道如何从tbl_requests
中选择某一行并通过{{1}将其插入tbl_friends
的查询}}。
我现在的问题是如何在选择ID
之后自动删除该行并将其插入tbl_requests
。
以下是tbl_friends
SELECT
和tbl_requests
至INSERT
的{{1}}查询:
tbl_friends
我将添加哪些内容,以便删除INSERT INTO tbl_friends
SELECT *
FROM tbl_requests
WHERE ID = 1
中的行?
答案 0 :(得分:3)
查看:MySQL Trigger - delete after update
您想要的是在插入后触发删除。
DELIMITER $$
CREATE TRIGGER trigger1
AFTER INSERT
ON tbl_friends
FOR EACH ROW
BEGIN
DELETE FROM tbl_requests WHERE ID = new.id;
END
$$
答案 1 :(得分:1)
使用单个语句在传统的sql中无法完成。交易的全部意义就是做到这一点。使用
begin;
insert into tbl_friends (a,b,c) select u,v,w from tbl_requests where id = :myid;
delete from tbl_requests where id = :myid;
commit;
你也可以在tbl_friends上使用一个触发器来删除插入新行的tbl_requests中的行。