Thread: Problem with Rules
I am trying to create some rules for referential integrity. A generic example: test=> create table one (id int4, name text); test=> create table two (ref int4, descr text); So lets say the "ref" references the "id" and I want to ensure update and delete cascade when table "one" is modified: test=> create rule one_delete_cascade as on delete to one do delete from two where ref = current.id; ERROR: current: Table does not exist. test=> create rule one_update_cascade as on update to one do update two set ref=new.id where ref=current.id; ERROR: current: Table does not exist. Apparently, it recognizes the "new" pseudo-instance but not the "current" one. Please don't tell me "current" is not yet implemented. test=> select version(); version -------------------------------------------------------------- PostgreSQL 6.5.0 on i686-pc-linux-gnu, compiled by gcc 2.7.2.3 Thanks. -- Peter Eisentraut PathWay Computing, Inc.
> > I am trying to create some rules for referential integrity. A generic > example: > > test=> create table one (id int4, name text); > > test=> create table two (ref int4, descr text); > > So lets say the "ref" references the "id" and I want to ensure update and > delete cascade when table "one" is modified: > > test=> create rule one_delete_cascade as on delete to one do delete from > two where ref = current.id; > ERROR: current: Table does not exist. > > test=> create rule one_update_cascade as on update to one do update two > set ref=new.id where ref=current.id; > ERROR: current: Table does not exist. > > Apparently, it recognizes the "new" pseudo-instance but not the "current" > one. Please don't tell me "current" is not yet implemented. > > > test=> select version(); > version > -------------------------------------------------------------- > PostgreSQL 6.5.0 on i686-pc-linux-gnu, compiled by gcc 2.7.2.3 CURRENT has been replaced by OLD in v6.4 but still supported. It has been removed in v6.5 so you have to use OLD now. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #========================================= wieck@debis.com (Jan Wieck) #