0

我有一个名为tbl_requestsand的表tbl_friends,我知道有关如何从 SELECT 某一行tbl_requests并将其插入到tbl_friendsby的查询ID

我现在的问题是如何tbl_requests在选择行并将其插入到tbl_friends.

这是我在SELECTfromtbl_requestsINSERTto中的查询tbl_friends

INSERT INTO tbl_friends 
     SELECT * 
       FROM tbl_requests 
      WHERE ID = 1

我将添加什么以便tbl_requests删除该行?

4

2 回答 2

3

看看:MySQL 触发器 - 更新后删除

您想要的是在插入后触发删除。

DELIMITER $$
CREATE TRIGGER trigger1
  AFTER INSERT
  ON  tbl_friends 
  FOR EACH ROW 
BEGIN
  DELETE FROM tbl_requests WHERE ID = new.id;
END
$$
于 2013-08-29T18:44:09.327 回答
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 中删除行。

于 2013-08-29T18:45:50.413 回答