gpt4 book ai didi

MySQL插入后触发

转载 作者:IT老高 更新时间:2023-10-29 00:00:05 25 4
gpt4 key购买 nike

我是 MySQL 新手。我有两个表 total_loaneravailable_loaner。我正在尝试为 total_loaner 中添加的每个新行创建一个触发器,我还想将该新行添加到 available_loaner

我的表格如下所示:

CREATE TABLE `total_loaner` (
`Kind` varchar(10) NOT NULL,
`Type` varchar(10) NOT NULL,
`Sno` varchar(10) NOT NULL,
PRIMARY KEY (`Sno`)
)

CREATE TABLE `available_loaner` (
`Kind` varchar(10) NOT NULL,
`Type` varchar(10) NOT NULL,
`Sno` varchar(10) NOT NULL,
`Status` char(10) NOT NULL DEFAULT '',
PRIMARY KEY (`Sno`)
)

我的触发器似乎不起作用。

CREATE TRIGGER new_loaner_added 
AFTER INSERT ON 'total_loaner' for each row
begin
INSERT INTO available_loaner (Kind, Type, Sno, Status)
Values (new.Kind, new.Type, new.Sno, 'Available');
END;

最佳答案

在你的情况下,你可以像这样重写你的触发器

CREATE TRIGGER new_loaner_added 
AFTER INSERT ON total_loaner
FOR EACH ROW
INSERT INTO available_loaner (Kind, Type, Sno, Status)
VALUES (NEW.Kind, NEW.Type, NEW.Sno, 'Available');

注意:

  • 从表名 total_loaner 中删除单引号,因为引号有效地使其成为字符串文字而不是正确的标识符。如果需要,您可以使用反引号,但这不是必需的,因为它不是保留字并且不包含任何特殊字符。
  • 因为现在是单语句触发器,所以您不需要使用 DELIMITER 命令和 BEGIN...END block

这里是 SQLFiddle 演示

关于MySQL插入后触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18728539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com