使用规则在插入时更新sql中的值;与老年人有问题
当我有一张像使用规则在插入时更新sql中的值;与老年人有问题,sql,psql,rule,Sql,Psql,Rule,当我有一张像 AccNum Location 76 North 87 West 92 South 然后说我想再插入76,但我只能在其中插入一次,这样在插入(76,East)时,我希望我的表看起来像这样 AccNum Location 76 East 87 West 92 South 这是我的密码 CREATE RULE ChangeValue AS ON INSERT TO ItemLoc
AccNum Location
76 North
87 West
92 South
然后说我想再插入76,但我只能在其中插入一次,这样在插入(76,East)时,我希望我的表看起来像这样
AccNum Location
76 East
87 West
92 South
这是我的密码
CREATE RULE ChangeValue AS ON INSERT TO ItemLocations
WHERE OLD.AccNum = NEW.AccNum
DO INSTEAD
UPDATE ItemLocations
SET
Loc = NEW.Loc
WHERE
AccNum = NEW.AccNum
;
但我现在正在
There is an entry for table "old", but it cannot be referenced from this part of the query.
谢谢你在95级Postgres+中,你可以在冲突中使用
:
insert into t(AccNum, Location)
select 76, 'East'
on conflict do update set Location = 'East';
或:
在Postgres 95.+中,您可以对冲突使用:
insert into t(AccNum, Location)
select 76, 'East'
on conflict do update set Location = 'East';
或:
好的,谢谢,我实际上是在试图找出我的规则在一般情况下的错误。在这个问题上,我似乎无法正确理解我的规则。好的,谢谢,我实际上是在试图找出我的规则在一般情况下的错误。在这个问题上,我似乎无法正确理解我的规则