0
私は私のテーブルのいずれかへのデータの挿入に基づいて、テーブル内の自動インクリメントを設定しようとしてきた、このBefor自動インクリメントMySQLのトリガー
を使用して値が、私は、重複としてフラグが付けられます「は既にVEの他の質問を見て、私は私の主な問題は、特にライントリガに関する構文の誤解だと思う:
WHERE ID = NEW.ID;
MySQLのブロック:
CREATE TABLE Members(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
FIRST_NAME TEXT(16),
LAST_NAME TEXT(16),
TITLE TEXT(7), /** 7 CHARS for 'Student'*/
INSTITUTION VARCHAR(2048),
No_Publications INT NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Papers(
ISBN INT UNSIGNED NOT NULL UNIQUE,
Title TEXT(4),
Publish_Date DATE NOT NULL,
Topic TEXT(128),
PRIMARY KEY(ISBN)
);
CREATE TABLE Publications(
Researcher_ID INT UNSIGNED NOT NULL UNIQUE,
ISBN INT UNSIGNED NOT NULL UNIQUE,
PRIMARY KEY (Researcher_ID, ISBN),
FOREIGN KEY(Researcher_ID) REFERENCES Members(ID) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY(ISBN) REFERENCES Papers(ISBN) ON DELETE RESTRICT ON UPDATE CASCADE /**Used in
many to many relations*/
);
CREATE TRIGGER New_Publication AFTER INSERT ON Publications
FOR EACH ROW
BEGIN
UPDATE Members SET No_Publications = No_Publications + 1 WHERE ID = NEW.ID;
END;
EDIT: は出版テーブルへの挿入時には、私はid
フィールドがpublications
テーブルではありませんので、任意のNEW.ID
がすることはできませんメンバーテーブルのNo_Publication列は1
どのような質問ですか? –
@ digital.aaronどうすれば実際に動作するトリガーを作成できますか? –
あなたの実際の質問、サンプルデータ、予想される結果、および実際の結果で投稿を更新する必要があります。 –