PostgreSQL Help
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsDatabasesPostgreSQL Help

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old August 21st, 2001, 12:09 AM
bambanghendra bambanghendra is offline
Junior Member
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Dec 2000
Location: jakarta
Posts: 11 bambanghendra User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 0
Send a message via ICQ to bambanghendra
Angry Creating Trigger for loging table

Iam trying to make a trigger for backup table. When a delete operation for table1, it will copy deleted data to table2.

table1:
create table1 (id int4, name text);

table2:
create table2 (id int4, name text);

function execute by trigger:
create function backup_func() returns OPAQUE as '
begin
insert into tabel2(id, nama) values (OLD.id, OLD.nama);
end;
' language 'plpgsql';

trigger for table1:
create trigger mytrigger after delete on tabel1 for each row execute procedure backup_func();

then insert some data:
insert into table1 (id, name) values (1, 'Mao Tze Dong');
insert into table1 (id, name) values (2, 'Hitler');

All above operations are doing fine. but when deleting data in table1 an error occor:

delete from table1 where id = 2;

ERROR: control reaches end of trigger procedure without RETURN

please help.. how to make a trigger for a table so that when the table do delete operation it can backup into anoter table?

thanks

Last edited by bambanghendra : August 22nd, 2001 at 02:35 AM.

Reply With Quote
  #2  
Old August 22nd, 2001, 10:48 PM
dcaillouet's Avatar
dcaillouet dcaillouet is offline
Big Endian
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: May 2001
Location: Fly-over country
Posts: 1,173 dcaillouet User rank is Sergeant (500 - 2000 Reputation Level)dcaillouet User rank is Sergeant (500 - 2000 Reputation Level)dcaillouet User rank is Sergeant (500 - 2000 Reputation Level)dcaillouet User rank is Sergeant (500 - 2000 Reputation Level)dcaillouet User rank is Sergeant (500 - 2000 Reputation Level) 
Time spent in forums: 16 h 29 m 5 sec
Reputation Power: 24
I have never written a trigger in Postgresql. The documentation says:
"...they must return either NULL or a record/row containing exactly the structure of the table the trigger was fired for."

Based on your error message and the documentation above, would adding a RETURN NULL; before the end; statement solve your problem? Postgresql does not appear to like that your trigger doesn't have a return value.

This is just a guess.

http://www.postgresql.org/idocs/ind...ql-trigger.html

Reply With Quote
  #3  
Old August 23rd, 2001, 04:33 AM
bambanghendra bambanghendra is offline
Junior Member
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Dec 2000
Location: jakarta
Posts: 11 bambanghendra User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 0
Send a message via ICQ to bambanghendra
Thanks dcaillouet

Quote:
Postgresql does not appear to like that your trigger doesn't have a return value.


Yes... a function shoud have a return value

But RETURN OLD or RETURN NEW will be fine.

Reply With Quote
Reply

Viewing: Dev Shed ForumsDatabasesPostgreSQL Help > what wrong????


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 2 hosted by Hostway
Stay green...Green IT