【问题标题】:Before Insert Trigger error when executing insert插入前执行插入时触发错误
【发布时间】:2018-03-26 23:30:58
【问题描述】:

在插入前触发器上,我想计算值 基于插入记录中的两个列的列 以及链接到正在更新的表的其他表中的列的值

对此进行测试,我刚刚创建了代码来访问其中一个 链上另一个表中的文件。但是在执行时我 出错了

CREATE DEFINER = CURRENT_USER TRIGGER `infrastructure`.`Wall_Drop_BEFORE_INSERT` BEFORE INSERT ON `Wall_Drop` FOR EACH ROW
BEGIN
Declare wall_temp decimal(6,2) default null;
Declare room_temp decimal (8,2) default null;

select r.dist_wire_closet into room_temp from rooms as r 
    where r.Residence_residence_id = new.Wall_rooms_Residence_residence_id
    and r.Residence_residence_id = new.Wall_rooms_Residence_residence_id;


END

插入记录时的错误信息

【问题讨论】:

  • 错误似乎很明显,不止一行与WHERE 条件匹配,但您只能使用SELECT INTO variable 与单个结果。
  • AND 中的两个测试是相同的。为什么同一件事要做两次?
  • 如果有多个房间有相同的Residence_residence_id,应该使用哪个房间?

标签: mysql database-trigger


【解决方案1】:

我的错误,第二行与第一行相同。我需要

select r.dist_wire_closet into room_temp from rooms as r 
    where r.Residence_residence_id = new.Wall_rooms_Residence_residence_id
    and r.room_abr = new.Wall_rooms_room_abr;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-15
    • 2013-09-13
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    相关资源
    最近更新 更多