[英]MySQL trigger: conditional insert syntax error
我有兩個表: Person和Student 。 我正在嘗試編寫一個觸發器,該觸發器在插入一個新人之后,如果該人小於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.