从表中选择并插入另一个表并从源表中删除它

时间:2013-08-29 18:40:18

标签: mysql sql

我有一个名为tbl_requeststbl_friends的表,我知道如何从tbl_requests中选择某一行并通过{{1}将其插入tbl_friends的查询}}。

我现在的问题是如何在选择ID之后自动删除该行并将其插入tbl_requests

以下是tbl_friends SELECTtbl_requestsINSERT的{​​{1}}查询:

tbl_friends

我将添加哪些内容,以便删除INSERT INTO tbl_friends SELECT * FROM tbl_requests WHERE ID = 1 中的行?

2 个答案:

答案 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中的行。