Ich habe versucht, ein Auto-Inkrement in einer Tabelle auf das Einfügen von Daten in einen meiner Tabellen basierend einzurichten,Auto Increment ein Wert einen MySQL-Trigger
Befor dies wird als Duplikat gekennzeichnet, I hat gesucht bereits in anderen Fragen, und ich glaube, mein Hauptproblem Mißverständnis der Syntax in Bezug auf einen Trigger ist, speziell die Zeile:
WHERE ID = NEW.ID;
MySQL Block:
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: Beim Einsetzen in die Veröffentlichungen Tabelle, mag ich die No_Publication Spalte in der Tabelle Mitglieder durch eine
Was ist Ihre Frage? –
@ digital.aaron wie kann ich einen Auslöser formulieren, der tatsächlich funktioniert, weil dieser nicht aus irgendeinem Grund ist –
Dann sollten Sie Ihren Beitrag mit Ihrer tatsächlichen Frage, Beispieldaten, erwarteten Ergebnissen und tatsächlichen Ergebnissen aktualisieren. –