0

これはトリガーを作成する最初の試みであり、混乱しています。関連する列を含む基本的なデータベース スキーマを次に示します。

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
4

1 に答える 1

0

約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
于 2013-05-02T23:41:49.453 に答える