我有一個包含 3 個表的資料庫:
deliverycompanydetails
該company表有一列評級從 1 到 10,如果評級超過 5,我們可以理解這家公司是可靠的,如果價格超過 1000,則詳細說明價格昂貴。
表delivery正在連接表company,details現在我正在嘗試創建一個觸發器,當有人試圖向一家不可靠的公司添加昂貴的表詳細資訊時,該觸發器將阻止插入delivery,但我不明白如何使用來自不同表的資料創建觸發器。
我正在使用 MySQL
DELIMITER //
CREATE TRIGGER before_insert_1
BEFORE INSERT
ON delivery
FOR EACH ROW
IF company.rating < 5 AND detail.Det_Price > 1000 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Unreliable company';
END IF //
DELIMITER ;
uj5u.com熱心網友回復:
您應該查看https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html特別注意新的討論。價值觀。
觸發器的簡單版本可能是
DELIMITER //
CREATE TRIGGER before_insert_1
BEFORE INSERT
ON delivery
FOR EACH ROW
begin
declare vrating int;
declare vprice int;
select company.rating into vrating from company where company.id = new.company_id;
select detail.det_price into vprice from detail where detail.? = new.?;
IF vrating < 5 AND vPrice > 1000 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Unreliable company';
END IF ;
end //
DELIMITER ;
但由于您沒有發布表定義,我無法準確告訴您選擇應該如何。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/479948.html
標籤:mysql 数据库 phpmyadmin
上一篇:您如何管理微服務的靜態資料?
