【发布时间】:2017-11-28 17:33:33
【问题描述】:
我有 2 张桌子。音乐会/门票
我想将 Concert 1 设置为最多 100 张门票,并将 Concert 2 设置为最多 200 张门票。所以就像有一个 Concert_id 与最大数量的 ticket_id 相关联。
如何在 mysql 中做到这一点?谢谢
【问题讨论】:
我有 2 张桌子。音乐会/门票
我想将 Concert 1 设置为最多 100 张门票,并将 Concert 2 设置为最多 200 张门票。所以就像有一个 Concert_id 与最大数量的 ticket_id 相关联。
如何在 mysql 中做到这一点?谢谢
【问题讨论】:
您可以编写触发器:
delimiter //
drop trigger if exists limitInsertsTrigger //
create trigger limitInsertsTrigger before insert on tickets
for each row
begin
declare msg varchar(128);
if (select count(*) from tickets where concert_id = new.concert_id)>
(select max_tickets_number from concert where id=new.concert_id)
then
set msg = concat('MyTriggerError: Trying to insert too many tickets');
signal sqlstate '45000' set message_text = msg;
end if;
end //
记得在 Concert 表中有一个 max_tickets_number 列。
【讨论】: