簡體   English   中英

MySQL觸發器:條件插入語法錯誤

[英]MySQL trigger: conditional insert syntax error

我有兩個表: PersonStudent 我正在嘗試編寫一個觸發器,該觸發器在插入一個新人之后,如果該人小於18歲,則將其插入到學生表中。

這是觸發器的代碼:

CREATE TRIGGER test_trigger
AFTER INSERT
ON Person
FOR EACH ROW
BEGIN
insert into `Student`(TestValue, ID) 
values("Test", select Person.ID from Person where Person.DateOfBirth > curdate() - interval 18 year);
END

但是我一直在

您的SQL語法中有一個錯誤... select Person.ID from...interval 18 year附近。

錯誤,並且我不知道是否是由於條件插入,日期時間操作或其他原因引起的。

您想使用insert into ... select from下面的構造中進行insert into ... select from並且不能將兩個insert into .. values構造與

insert into `Student`(TestValue, ID) 
select "Test", Person.ID 
from Person 
where Person.DateOfBirth > curdate() - interval 18 year;

應該:

CREATE TRIGGER test_trigger
AFTER INSERT
ON Person
FOR EACH ROW
BEGIN
insert into `Student`(TestValue, ID) 
select "Test", Person.ID from Person where Person.DateOfBirth > curdate() - interval 18 year;
END

您不能在VALUES中將SELECT子句用作參數。 但是您可以在選擇中將“測試”作為值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM