缺少表postgresql的FROM子句条目

问题描述 投票:0回答:1

我有2张桌子:mks_equipmentmks_equipment_packs

mks_equipment有:IDTypeNameBrnand mks_equipment_packs有:packIDRockShoesHelmetRockShoesHelmet都参考了mks_eqipment.ID

我想创建一个触发器,如果​​你试图添加ID,将引发非头盔项目引入Helmet中的mks_equipment_packs列,这将引发异常。

这是触发器的代码:

IF (NEW.packid < 0 ) THEN
        RAISE EXCEPTION 'It can not be a negative number!';     END IF;
IF((mks_equipment.type != 'RockShoes' ) AND (mks_equipment.ID = NEW.rockshoes)) THEN
        RAISE EXCEPTION 'Wrong piece of equipment!';
END IF;
RETURN NEW;

这就是问题所在。如果我尝试qazxsw poi,

然后它说:

INSERT INTO mks_equipment_packs VALUES (31, 33, 84)

我该如何解决这个问题?谢谢。

附: tsak特别说:我不能在几个表中拆分我的mks_equipment表。这是禁止的。

postgresql
1个回答
2
投票

Error: ERROR: missing FROM-clause entry for table "mks_equipment" LINE 1: SELECT (mks_equipment.type != 'RockShoes') AND (mks_equipmen... ^ QUERY: SELECT (mks_equipment.type != 'RockShoes') AND (mks_equipment.ID = NEW.rockshoes) CONTEXT: PL/pgSQL function mks_equipment_checks() line 5 at IF 是一个表的列,在这种情况下没有任何意义。您必须指定表中的多行中的哪一行。

你可能正在寻找像这样的结构

mks_equipment.type
© www.soinside.com 2019 - 2024. All rights reserved.