if语句

a7qyws3x  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(288)

所以我有两个表practice和practice1,其中都有一个自动递增的id和一个name和surname列。我做了一个after insert触发器,里面有一个if语句,在这里我设置了一个条件,如果name为null,那么应该插入一个insert,如果姓氏为null,那么另一个就应该插入,但是由于某种原因它不起作用。我正在分享我试过的剧本。

CREATE DEFINER = CURRENT_USER TRIGGER `id_information`.`practice_after_INSERT1` AFTER INSERT ON `practice` FOR EACH ROW
BEGIN
if (`name`  = NULL) then
 insert into id_information.practice1(surname) values(new.surname);
 else
 (`surname` = NULL) then
  insert into id_information.practice1(name) values(new.name);
 end if;
END$$
delimiter ;

请纠正我的错误。id\u information是数据库的名称。

amrnrhlw

amrnrhlw1#

我认为你想要的语法是:

delimiter $$

create definer = current_user trigger `id_information`.`practice_after_insert1` 
after insert on `practice` for each row
begin
    if new.name is null then
        insert into id_information.practice1(surname) values(new.surname);
    elseif new.surname is null then
        insert into id_information.practice1(name) values(new.name);
    end if;
end$$

delimiter ;

要点:
您需要使用伪表 new 访问刚刚插入的行
你的组织结构 if 声明应该是 if ... then ... elseif ... end 对照检查值 null ,使用 is null 而不是 = null (这从来都不是真的)

相关问题