所以我在 phpMyAdmin 中看到了很多触发器示例,但语法对我来说没有意义......我过于简单化了它。
我想在 phpMyAdmin 上创建一个约束。我有两张表,一张是 Funds,一张是 Fund_Shares_Purchased。在Funds中,有一个属性“total_available”,就是可以购买的股票总数。在 Fund_Shares_Purchased 中,有一个属性“quantity”,即某人购买了多少股。这两个表在“Fund_Name”属性上相关。
我尝试了以下...
CREATE TRIGGER limitFundShares
BEFORE INSERT ON Fund_Shares_Purchased
BEGIN
IF (Fund.total_shares < NEW.quantity)
THEN
RAISERROR("You can't buy that many shares of the fund!")
END IF;
END;
如有任何帮助或指导,我们将不胜感激!
最佳答案
下面是一个使用 MySQL 命令行客户端的测试示例:
create table Fund(total_shares int);
insert into Fund values(10);
create table Fund_Shares_Purchased(quantity int);
delimiter //
create trigger LimitFundShares
before insert on Fund_Shares_Purchased
for each row
begin
if ((select total_shares from Fund) < new.quantity)
then
signal sqlstate '45000'
set message_text = "You can't buy that many shares of the fund!";
end if;
end//
delimiter ;
insert into Fund_Shares_Purchased values (5);
insert into Fund_Shares_Purchased values (15);
insert into Fund_Shares_Purchased values (7);
select * from Fund_Shares_Purchased;
您应该能够将触发器创建语句粘贴到 phpMyAdmin 中,尽管我还没有测试过。
关于mysql - 在 phpMyAdmin 中创建一个约束作为触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34055550/