我可以使用触发器来添加外键组合吗?
Can I use a trigger to add combinations of foreign keys?
我现在的情况是我想在 table 上使用插入后的触发器进行多次插入。
这里python先理解objective的代码:
d = dict()
d["Table1"] = ["1", "2"]
d["Table2"] = ["A","B"]
from itertools import product
d["Table12"] = [ (t1,t2,-1) for t1, t2 in product(d["Table1"], d["Table2"])]
这里是结果:Table12是d值的乘积。
{'Table1': ['1', '2'],
'Table2': ['A', 'B'],
'Table12': [('1', 'A', -1), ('1', 'B', -1), ('2', 'A', -1), ('2', 'B', -1)]}
我正在尝试使用数据库实现与触发器相同的行为,并完全完成与所有主键组合的关联。
Table1:
pk name1 VARCHAR
Table 2:
pk name2 VARCHAR
Table 12:
pk (name1, name2)
val INTEGER
fk (t1_name) reference Table1 (name1)
fk (t2_name) reference Table2 (name2)
CREATE TRIGGER table1_insert AFTER INSERT ON Table1
FOR EACH ROW
BEGIN
INSERT INTO Table12 VALUES(new.name1, #?, -1)
END
有没有办法得到产品#?像
INSERT INTO Table12 VALUES(new.name2, table2.name2, -1) FROM select *
in table2;
如果在表1中插入“3”:表12必须填写(3, 'A', -1), (3, 'B', -1).
在 INSERT
查询中使用 SELECT
查询。
CREATE TRIGGER table1_inisert AFTER INSERT ON Table1
FOR EACH ROW
BEGIN
INSERT INTO Table12 (name1, name2, val)
SELECT NEW.name1, name2, -1
FROM Table2
END
我现在的情况是我想在 table 上使用插入后的触发器进行多次插入。
这里python先理解objective的代码:
d = dict()
d["Table1"] = ["1", "2"]
d["Table2"] = ["A","B"]
from itertools import product
d["Table12"] = [ (t1,t2,-1) for t1, t2 in product(d["Table1"], d["Table2"])]
这里是结果:Table12是d值的乘积。
{'Table1': ['1', '2'],
'Table2': ['A', 'B'],
'Table12': [('1', 'A', -1), ('1', 'B', -1), ('2', 'A', -1), ('2', 'B', -1)]}
我正在尝试使用数据库实现与触发器相同的行为,并完全完成与所有主键组合的关联。
Table1:
pk name1 VARCHAR
Table 2:
pk name2 VARCHAR
Table 12:
pk (name1, name2)
val INTEGER
fk (t1_name) reference Table1 (name1)
fk (t2_name) reference Table2 (name2)
CREATE TRIGGER table1_insert AFTER INSERT ON Table1
FOR EACH ROW
BEGIN
INSERT INTO Table12 VALUES(new.name1, #?, -1)
END
有没有办法得到产品#?像
INSERT INTO Table12 VALUES(new.name2, table2.name2, -1) FROM select * in table2;
如果在表1中插入“3”:表12必须填写(3, 'A', -1), (3, 'B', -1).
在 INSERT
查询中使用 SELECT
查询。
CREATE TRIGGER table1_inisert AFTER INSERT ON Table1
FOR EACH ROW
BEGIN
INSERT INTO Table12 (name1, name2, val)
SELECT NEW.name1, name2, -1
FROM Table2
END