0

私は、挿入後にトリガーを持つテーブルに複数の挿入をしたいという状況にあります。ここでは結果をトリガーを使用して外部キーの組み合わせを追加できますか?

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

:ここ

Pythonコード

は、第一の目的を理解する表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 

製品を入手する方法はありますか?表2で選択* FROM

INSERT INTO表12のVALUES(new.name2、table2.name2、-1)のようなものを持ちます。

"3" は、表1に挿入されている場合:表12は、(3、 'A'、-1)、(3、 'B'、-1)で完了されなければなりません。

答えて

0

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 
+0

はい!できます。 table2からnew.name1を選択するのは少し奇妙です。 new.name1はその中にあるはずです。 – user2652620

+1

'SELECT'節には、リテラル' -1'のように、テーブルから来ない値を含めることができます。 – Barmar

関連する問題