我如何在MySQL中为每个行循环内的每个行循环做一个?

拖把

伙计们,我正在尝试为每个行循环内的每个行循环做一个,我真的是mysql的新手,这是我的第一个触发器,我有一个名为Disponivel的表,我想看看是否每个我试图在名为Venda的表上插入的行已经在Disponivel表中,如果是这种情况,我想将其插入到表Venda中。如果我要插入的行不是Disponivel表的一部分,则不应将其插入表Venda中。有人可以帮忙吗?这就是我所拥有的。

  DELIMITER $$
    create trigger venda_disponivel
        before insert on Venda
    for each row begin
        for each row in Disponivel begin
            if ((new.nomeA = Disponivel.nomeA) and (new.dia = Disponivel.dia) and (new.mes = Disponivel.mes) and (new.ano = Disponivel.ano) and (new.nomeR = Disponivel.nomeR)) then
            end if;
        end;
    end$$
    DELIMITER ;

这给了我这个错误:

错误1064(42000):您的SQL语法有错误;请检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'如果在第4行((new.nomeA = Disponivel.nomeA)和(new.d')

create table Disponivel(
    NomeA       varchar(80),
    NomeR       varchar(80),
    dia     integer,
    mes     varchar(45),
    ano     integer,
    primary key(nomeA, nomeR, dia, mes, ano),
    foreign key(nomeA) references Prato(nomeA),
    foreign key(nomeR) references Restaurante(nomeR),
    foreign key(dia, mes, ano) references Data(dia, mes, ano));

create table Venda(
    NomeA       varchar(80),
    dia     integer,
    mes     varchar(45),
    ano     integer,
    nomeR       varchar(80),
    num         integer,
    primary key(nomeA, nomeR, dia, mes, ano),
    foreign key(nomeA) references Prato(nomeA),
    foreign key(nomeR) references Restaurante(nomeR),
    foreign key(dia, mes, ano) references Data(dia, mes, ano));
术语

FOR EACH 在MySQL中不是循环结构FOR EACH ROW只是CREATE TRIGGER语句的一部分而已,它仅表示以下事实:将为受触发器影响的每一行执行后面的代码。

现在可以通过额外的FK强制执行此约束,而无需触发

create table Venda(
    NomeA       varchar(80),
    dia     integer,
    mes     varchar(45),
    ano     integer,
    nomeR       varchar(80),
    num         integer,
    primary key(nomeA, nomeR, dia, mes, ano)
    ,foreign key(nomeA) references Prato(nomeA)
    ,foreign key(nomeR) references Restaurante(nomeR)
    ,foreign key(dia, mes, ano) references Data(dia, mes, ano)
    ,foreign key(nomeA, nomeR, dia, mes, ano) references Disponivel(nomeA, nomeR, dia, mes, ano)
);

这是SQLFiddle演示。尝试取消注释最后插入的内容,然后单击Build Schema您会看到FK不允许插入此行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在JavaScript中为两个数组的每个循环使用一个?

来自分类Dev

单独的列表框项目为每个循环做一个

来自分类Dev

如何在一个sql中为每个唯一参数获取行并获取计数行?

来自分类Dev

如何在Java中的每个循环中访问下一个元素?

来自分类Dev

如何在PHP中每个foreach完整循环增加一个计数器?

来自分类Dev

如何在while循环中的每个循环后从字符串中删除一个字符

来自分类Dev

如何我设置为循环,所以我可以选择每个问题一个单选按钮?

来自分类Dev

雪花如何在临时表的每一行上循环,并将其值插入到另一个表中,而每个表的值都是一行?

来自分类Dev

如何在mysql中为每个用户获取最多的行

来自分类Dev

为每个分号运行一个循环

来自分类Dev

为每个进程划分一个for循环

来自分类Dev

PHP为每个循环返回一个值

来自分类Dev

Jquery 为每个循环创建一个表

来自分类Dev

努力使用我制作的对象为每个循环制作一个

来自分类Dev

如何在列表框之间建立一个for循环,并在每个循环之间有一个暂停

来自分类Dev

循环一个用逗号分隔的变量,并将每个项目输入到表SQL的每一行中

来自分类Dev

如何分配一个循环来为每个核心运行一次迭代

来自分类Dev

为每个mysql查询结果字段运行一个循环

来自分类Dev

无法为每个循环从数据表中删除行

来自分类Dev

无法为每个循环从数据表中删除行

来自分类Dev

如何调用一个为循环中的每个项目数组返回promise的函数

来自分类Dev

循环为列表中的每个对象添加一个json

来自分类Dev

Javascript - 为每个循环创建一个对象并在数组中递增计数

来自分类Dev

在 Javascript 中为循环中生成的每个值创建一个按钮

来自分类Dev

为什么必须为每个循环多次运行我的表才能删除表中的行?

来自分类Dev

如何使用git为每个任务策略做一个分支

来自分类Dev

如何在R中编写一个循环,以选择每个id组越来越多的行数?

来自分类Dev

如何在R中编写一个循环,以选择每个id组越来越多的行数?

来自分类Dev

我如何在mysql表中做一个值echo作为其他东西?

Related 相关文章

  1. 1

    如何在JavaScript中为两个数组的每个循环使用一个?

  2. 2

    单独的列表框项目为每个循环做一个

  3. 3

    如何在一个sql中为每个唯一参数获取行并获取计数行?

  4. 4

    如何在Java中的每个循环中访问下一个元素?

  5. 5

    如何在PHP中每个foreach完整循环增加一个计数器?

  6. 6

    如何在while循环中的每个循环后从字符串中删除一个字符

  7. 7

    如何我设置为循环,所以我可以选择每个问题一个单选按钮?

  8. 8

    雪花如何在临时表的每一行上循环,并将其值插入到另一个表中,而每个表的值都是一行?

  9. 9

    如何在mysql中为每个用户获取最多的行

  10. 10

    为每个分号运行一个循环

  11. 11

    为每个进程划分一个for循环

  12. 12

    PHP为每个循环返回一个值

  13. 13

    Jquery 为每个循环创建一个表

  14. 14

    努力使用我制作的对象为每个循环制作一个

  15. 15

    如何在列表框之间建立一个for循环,并在每个循环之间有一个暂停

  16. 16

    循环一个用逗号分隔的变量,并将每个项目输入到表SQL的每一行中

  17. 17

    如何分配一个循环来为每个核心运行一次迭代

  18. 18

    为每个mysql查询结果字段运行一个循环

  19. 19

    无法为每个循环从数据表中删除行

  20. 20

    无法为每个循环从数据表中删除行

  21. 21

    如何调用一个为循环中的每个项目数组返回promise的函数

  22. 22

    循环为列表中的每个对象添加一个json

  23. 23

    Javascript - 为每个循环创建一个对象并在数组中递增计数

  24. 24

    在 Javascript 中为循环中生成的每个值创建一个按钮

  25. 25

    为什么必须为每个循环多次运行我的表才能删除表中的行?

  26. 26

    如何使用git为每个任务策略做一个分支

  27. 27

    如何在R中编写一个循环,以选择每个id组越来越多的行数?

  28. 28

    如何在R中编写一个循环,以选择每个id组越来越多的行数?

  29. 29

    我如何在mysql表中做一个值echo作为其他东西?

热门标签

归档