0

私は2つのテーブルにとを言いtable1ますtable2

fields of table1 - id and count
fields of table2 -  id and count

両方のテーブルに同じフィールドがあります。次に、チェックしてからtable2に挿入するものを作成BEFORE INSERT TRIGGERします。それ以外の場合はtable1に挿入します。table1if count = 2

トリガーを作成しましたが、このクエリを実行すると..example-

insert into table1 (id, count) values (1323, 2);

次に、1つの行がtable2に挿入され(これが必要です)、同じ行がtable1にも挿入されます。

行をtable1に挿入するか、両方のテーブルに挿入しないようにします。

これを達成するために私は何をしますか?

4

2 に答える 2

0

これを試してください:

delimiter $$
CREATE TRIGGER myTrigger
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
IF NEW.count = 2 THEN
insert into table2 (id, count) values (New.id,New.Count);
ELSE
<<no action>>
END IF;
END$$
于 2013-02-19T07:13:34.917 に答える
0

なぜこれが必要なのかわからないので、別の方法で修正する必要がある何らかの解決策についてアドバイスをしているのではないかと思いますが、ここに行きます。

この質問でわかるように、挿入をきちんと停止することはできません。エラーを起こして実際に挿入しないようにすることもできますが、それは本当に苦痛だと思います。

できることは、偽のテーブルdummytableを作成し、そこに挿入トリガーを配置することです。行は常にダミー テーブルに挿入されますが、必要に応じて挿入するか、挿入しますtable1table2引き金の肉は次のようになります

IF NEW.count = 2 THEN
INSERT INTO table2 (id, count) VALUES (New.id,New.Count);
ELSE
INSERT INTO table2 (id, count) VALUES (New.id,New.Count);
END IF;

ダミーテーブルをときどき掃除する必要があります。

于 2013-02-19T08:05:32.087 に答える