का उपयोग कर एक और तालिका अद्यतन करने के लिए मैं एक मेज नामित पुरस्कार है। मैं PostgreSQL में एक ट्रिगर कैसे माउंट कर सकता हूं जहां टेबल पुरस्कार में प्रत्येक सम्मिलन एक अलग तालिका अद्यतन करता है?सम्मिलित ट्रिगर PostgreSQL
उत्तर
आप documenation for PL/PgSQL triggers है, जो दूसरों के बीच में सिर्फ इस मामले पर चर्चा करना चाहते हैं। सामान्य documentation on triggers भी उपयोगी हो सकता है।
आप इसके लिए BEFORE
या AFTER
ट्रिगर का उपयोग कर सकते हैं। मैं शायद एक AFTER
ट्रिगर ताकि मेरे ट्रिगर देखा पंक्ति के अंतिम संस्करण डाला जा रहा है, हालांकि का उपयोग करेंगे। आप निश्चित रूप से FOR EACH ROW
चाहते हैं।
[meta.SO. पर PostgreSQL मैनुअल संदर्भित के बारे में अधिक] अरे @ क्रेग रिंगर बैच आवेषण के लिए प्रत्येक पंक्ति के लिए उद्देश्य है? – rosenthal
@rosenthal हुह? 'प्रत्येक कथन के लिए' ट्रिगर्स को 'नई' पंक्ति तक पहुंच नहीं है। तो अगर आप एक पंक्ति 'INSERT' कर रहे थे, तो यह इसके लिए उपयोगी नहीं होगा। –
मेरा मतलब यह नहीं था कि, शब्दों में मेरी खराब पसंद को क्षमा करें। मेरा मतलब है कि प्रत्येक के लिए क्या करना है? मैंने पोस्टग्रेज़ के लिए प्रलेखन को देखा और अब इसे समझ लिया। "प्रत्येक पंक्ति के लिए चिह्नित एक ट्रिगर को प्रत्येक पंक्ति के लिए एक बार कहा जाता है जिसे ऑपरेशन संशोधित करता है।" – rosenthal
लिंक का पालन और आपको जवाब मिल जाएगा पर क्लिक करें।
http://www.postgresql.org/docs/9.4/static/plpgsql-trigger.html
यहाँ हम table1
और table2
नामित दो तालिकाओं की है। एक ट्रिगर मैं table1
में प्रविष्टि पर table2
अपडेट कर देंगे का उपयोग करना।
टेबल
CREATE TABLE table1
(
id integer NOT NULL,
name character varying,
CONSTRAINT table1_pkey PRIMARY KEY (id)
)
CREATE TABLE table2
(
id integer NOT NULL,
name character varying
)
उत्प्रेरक समारोह
CREATE OR REPLACE FUNCTION function_copy() RETURNS TRIGGER AS
$BODY$
BEGIN
INSERT INTO
table2(id,name)
VALUES(new.id,new.name);
RETURN new;
END;
$BODY$
language plpgsql;
उत्प्रेरक
CREATE TRIGGER trig_copy
AFTER INSERT ON table1
FOR EACH ROW
EXECUTE PROCEDURE function_copy();
ट्रिगर में फ़ंक्शन फ़ंक्शन एक तालिका से मूल्यों को सम्मिलित करने के लिए कैसे जानता है? "मूल्यों (new.id, new.name)" के बाद हमें "table1 से" लिखने की आवश्यकता नहीं है? –
- 1. सिद्धांत 2 preUpdate घटना - सम्मिलित नहीं ट्रिगर?
- 2. ट्रिगर पुराने मूल्यों को सम्मिलित करें-
- 3. पोस्टग्रेएसक्यूएल ट्रिगर सम्मिलित करें या अपडेट करें
- 4. PostgreSQL
- 5. PostgreSQL
- 6. PostgreSQL ट्रिगर कुछ भी वापस नहीं लौटा रहा है
- 7. PostgreSQL
- 8. PostgreSQL
- 9. PostgreSQL
- 10. हाइबरनेट पोस्टइन्सर्टएवेंटलिस्टर्स-सम्मिलित लेनदेन को सम्मिलित करें?
- 11. एसक्यूएल फ़ंक्शंस ट्रिगर
- 12. एसक्यूएल सर्वर - - सम्मिलित करें/सम्मिलित के लिए बाद रोलबैक
- 13. अपडेट ट्रिगर डालें कि
- 14. सम्मिलित
- 15. MSSQL: अक्षम एक सम्मिलित
- 16. MySQL ट्रिगर - INSERT ट्रिगर + UDF sys_exec() समस्या
- 17. सम्मिलित करें सम्मिलित बनाम जांच
- 18. PostgreSQL
- 19. postgresql
- 20. PostgreSQL
- 21. PostgreSQL
- 22. Postgresql
- 23. PostgreSQL
- 24. postgresql
- 25. PostgreSQL
- 26. PostgreSQL
- 27. PostgreSQL
- 28. PostgreSQL
- 29. postgresql
- 30. PostgreSQL
आप कुछ मोर प्रदान कर सके बनाएं ई विवरण? क्या यह "अलग तालिका" पुरस्कारों में कुछ फ़ील्ड के कुछ मूल्यों के आधार पर एक एकल, अलग तालिका या एकाधिक सारणी है। – jcater
http://www.postgresql.org/docs/8.1/static/triggers.html – ertx
@ertx बेहतर/8.1/ डॉक्टर के बजाय/वर्तमान/डॉक्टर से लिंक करने के लिए बेहतर है, यह * बेहद * पुराना है। –