これはトリガーを作成する最初の試みであり、混乱しています。関連する列を含む基本的なデータベース スキーマを次に示します。
DATABASE_NAME
TABLE_100
| C100_ROWID | C101_NAME | ... | C105_COUNT |
TABLE_200
| C200_ROWID | C201_NAME | ... | C207_FOREIGNKEY (C101_NAME) |
TABLE_100 が最初に作成され、次に TABLE_200 の行がユーザー入力に基づいて入力されるため、アプリケーションが最初に起動されたとき、TABLE_200 は空です。
私がやろうとしているのは、C207_FOREIGNKEY として使用された特定の C101_NAME 行の C105_COUNT に +1 を追加するために、TABLE_200 に INSERT があるときにトリガーを作成することです。
目的は、C101_ROWID/C100_NAME が TABLE_200 で使用されるすべての時間の現在の合計を保持することです。
これが私がこれまでに得たものであり、明らかに完全に間違っているので、助けていただければ幸いです:
CREATE TRIGGER runningcount AFTER INSERT ON TABLE_200
BEGIN
UPDATE TABLE_100
SET C105_COUNT = C105_COUNT + 1
WHERE (??? newly inserted row on TABLE_200 ???) C207_FOREIGNKEY = C101_NAME
END
編集:
約2時間のフラストレーションの後、私はそれを理解しました。将来誰かがこれを必要とする場合:
CREATE TRIGGER trigger AFTER INSERT ON TABLE_200
BEGIN
UPDATE TABLE_100
SET C105_COUNT = C105_COUNT + 1
WHERE C101_NAME = new.C207_FOREIGNKEY
END