我需要幫助在mySQL Bench上創建BEFORE INSERT觸發器。即時通訊新的這個請。在MYSQL中創建BEFORE INSERT觸發器
CREATE TABLE `quincyninying`.`toytracking` (
`Toyid` INT NOT NULL,
`ToyName` VARCHAR(50) NULL,
`Toycost` DECIMAL NULL,
`ToyAction` VARCHAR(50) NULL,
`ActionDate` DATETIME NULL,
PRIMARY KEY (`Toyid`));
CREATE TABLE `quincyninying`.`toy` (
`Toyid` INT NOT NULL,
`ToyName` VARCHAR(50) NULL,
`Toycost` DECIMAL NULL,
PRIMARY KEY (`Toyid`));
創建上,增加了一個記錄到toytracking表從玩具表記錄正被插入的信息,硬編碼ToyAction,這將是「插入」和當前日期的玩具表中的BEFORE INSERT觸發器並記錄插入的時間。
ERROR 1054: Unknown column 'inserted' in 'NEW' SQL Statement:
CREATE DEFINER = CURRENT_USER TRIGGER `quincyninying`.`toy_BEFORE_INSERT` BEFORE INSERT ON `toy`
FOR EACH ROW
BEGIN
IF new.inserted THEN
SET @toyaction = 'DELETE';
ELSE
SET @toyaction = 'NEW';
END IF;
INSERT INTO `quincyninying`.`toytracking` (toyId, ToyName, ToyCost, Toyaction, ActionDate)
VALUES (new.toyid, new.Toyname, new.Toycost,@Toyaction, now());
END
這引發了我一個錯誤說「錯誤1054:在‘插入’未知列‘新’」
這是很清楚的。 'TOY'表中沒有名爲'inserted'的列。你想達到什麼?而且,你的餐桌設計並不常見。這兩張表格之間有冗餘信息。 – Hermanto
我想玩玩具桌上的BEFORE INSERT觸發器,該玩具桌上的玩具表記錄正在被INSERTED,硬編碼ToyAction的信息添加到玩具跟蹤表中,該玩具表將被'INSERT'和當前日期和時間記錄被插入。 – ninying90
什麼是'IF new.inserted'應該測試? – Barmar