【问题标题】:set maximum limits in mysql sql database在mysql sql数据库中设置最大限制
【发布时间】:2017-11-28 17:33:33
【问题描述】:

我有 2 张桌子。音乐会/门票

我想将 Concert 1 设置为最多 100 张门票,并将 Concert 2 设置为最多 200 张门票。所以就像有一个 Concert_id 与最大数量的 ticket_id 相关联。

如何在 mysql 中做到这一点?谢谢

【问题讨论】:

    标签: mysql sql max limit


    【解决方案1】:

    您可以编写触发器:

    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 列。

    【讨论】:

    • 所以这个触发器就像你要在 mysql shell 命令中键入的命令?我正在使用 mysql 工作台 atm。对不起,如果我的问题很无聊。我是新的cs学生。
    • 触发器就像一个表定义。可以复制粘贴到mysql workbench中运行。
    • 是否也可以反过来做一些事情?就像一列以最大数量开始,并随着行的添加自动向下打勾?
    • 你可以这样做,但它不是有用的数据。你可以设置一个concert的最大数量,然后在trigger中一直检查这个值。我会更新的
    • 谢谢。我将进行更多调查并尝试在工作台中实现这一点。
    猜你喜欢
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    相关资源
    最近更新 更多