डॉक्सhttp://www.postgresql.org/docs/8.4/ से static/rules.html
इसलिए यह पहले कुछ भी क्रियान्वित किए बिना प्रश्नों को फिर से लिखता है।
जब आप एक साथ कई रिकॉर्ड नहीं डालते हैं तो आप इसे काम कर सकते हैं:
create or replace rule ct_i_children1 as
on insert to Children1
do instead (
insert into Parents(id, attribute1, type)
values(nextval('parents_id_seq'), new.attribute1, 'Child1');
insert into Partial_Children1(id, attribute2, type)
values(currval('parents_id_seq'), new.attribute2, 'Child1');
);
तब आप यह कर सकते हैं:
insert into Children1 (attribute1, attribute2) values ('a1', 'a2');
insert into Children1 (attribute1, attribute2) values ('b1', 'b2');
लेकिन नहीं
insert into Children1 (attribute1, attribute2)
values ('a1', 'a2'),
('b1', 'b2');
तो आपको वास्तव में ट्रिकी कर्वल () कॉल के साथ नियम प्रणाली का उपयोग नहीं करना चाहिए।
इसके अतिरिक्त इन पृष्ठों पर टिप्पणियों पर एक नज़र डालें:
- http://www.postgresql.org/docs/ 8.2/interactive/rules-update.html
- http://archives.postgresql.org/pgsql- sql/2004-10/msg00195.php
- http://archives.postgresql.org/pgsql- सामान्य/2009-06/msg00278.php
एक और युक्ति:postgresql मेलिंग सूची में समर्थन डेटाबेस इंजन के समान ही उत्कृष्ट है!
और वैसे:क्या आप जानते हैं कि postgresql के पास इनहेरिटेंस आउट-ऑफ़-द-बॉक्स का समर्थन है?
सारांश:आपको ट्रिगर्स का उपयोग करना चाहिए या एकाधिक पंक्ति प्रविष्टि से बचना चाहिए!