【发布时间】:2021-03-18 00:02:01
【问题描述】:
我正在尝试为 MySQL 编写一个触发器,它通过创建一个新行将名为“Kurs”的表的最后一行的一些属性自动插入到另一个表中。
表格如下所示:
CREATE TABLE Kurs (
KursNummer int,
Name varchar(255),
Beschreibungstext varchar(255),
Einschreibeschlüssel varchar(255) NULL,
Plaetze int,
BenutzerErstellerNummer int,
CONSTRAINT fk_BenutzerErstellerNummer
FOREIGN KEY (BenutzerErstellerNummer) REFERENCES Benutzer(BenutzerNummer),
PRIMARY KEY (KursNummer)
);
CREATE TABLE einschreiben (
BenutzerEinschreiberNummer int,
KursNummer int,
Eintrittsdatum date,
EinschreibeID int,
CONSTRAINT fk_BenutzerEinschreiberNummer
FOREIGN KEY (BenutzerEinschreiberNummer) REFERENCES Benutzer(BenutzerNummer),
CONSTRAINT fk_KursNummer2
FOREIGN KEY (KursNummer) REFERENCES Kurs(KursNummer),
PRIMARY KEY (EinschreibeID)
);
**触发器看起来像这样,但不知何故不起作用:**
CREATE TRIGGER erstellTrigger AFTER INSERT ON test.Kurs
AS
BEGIN
INSERT INTO enschreiben VALUES
(NEW.BenutzerErstellerNummer,
NEW.KursNummer,
CURRENT_TIMESTAMP,
1);
END;
【问题讨论】:
-
“不知何故不起作用”和不一致的数据库标签使问题很不清楚。
-
嗨,欢迎来到 Stack Overflow。我们很高兴你在这里。当您寻求帮助时,请通过描述您当前的代码如何不起作用来帮助我们。它会返回错误吗?如果是这样,确切的错误信息是什么?如果不是,它做了什么不是你所期望的?如果您帮助我们理解问题,您将获得更好的答案。还可以考虑阅读帮助中心中的stackoverflow.com/help/how-to-ask 和其他文章,以充分利用 Stack Overflow。
-
你设置了分隔符吗?此外,mysql 触发器中的 AS 不正确,并且触发器缺少一个 for each row 子句..
标签: mysql sql database triggers