gpt4 book ai didi

python - 我可以使用触发器来添加外键组合吗?

转载 作者:行者123 更新时间:2023-11-29 20:22:34 25 4
gpt4 key购买 nike

我现在的情况是,我想在插入后使用触发器在表上进行多次插入。

这里是Python代码,首先要理解目标:

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"])]

结果如下:表 12 是 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

关于python - 我可以使用触发器来添加外键组合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com