我有三个名为table1
,table2
和table3
的表格。
骷髅就像下面
table1包含username
和password
数据。 Table2
包含他与其他用户的关系。
所以我的要求是当用户注册时,值将被插入table1
。并且用户还将发送其他用户的列表以指定他的引用。例如,当添加u1
时,他已发送[u2, u3, u5]
。由于u2 and u3
已经注册,因此应将这两个用户添加到table2
,如下所示。每当注册table2
时,都应添加u1 - u5
u5
。
所以我维护table3
来维护未注册的用户。
准确地说,这就是我想要做的事情。
在table1
中添加某个用户时,想要引发一个触发器,该触发器将使用新插入的值检查table3
field_2
值。无论哪个行匹配,都应插入table2
,如同u2
和u3
一样。
以下是我的尝试,但我对如何继续进行模糊不清
create trigger transaction_state after update on table1
begin
insert into table2
select * from table1 where field_2 = /* newly updated */;
end;
答案 0 :(得分:2)
根据您的输入,我认为有两个触发器要写,
在table3
上插入触发器,检查field_2
是否已注册。如果是,则记录(field_1,field_2)将插入table2
。
在'table1'上插入触发器,它会选择uid
显示为field_2
的所有行,并将所有这些行插入table2
。
如果您正在使用第三方数据库,请告诉我这是否合理并符合您的要求以及它的可行性。
CREATE TRIGGER trigger1
AFTER INSERT ON table3
FOR EACH ROW
BEGIN
INSERT INTO table2
SELECT NEW.field_1, NEW.field_2
FROM table1
WHERE table1.uid = NEW.field_2
END;
CREATE TRIGGER trigger2
AFTER INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO table2
SELECT table3.field_1, table3.field_2
FROM table3
WHERE table3.field_2 = NEW.uid
END;