में एक-से-कई लोगों के लिए एक बहुत-से-अनेक संबंध परिवर्तित मैं एक बहुत-से-अनेक foo
और bar
के बीच foo_id
और bar_id
के साथ एक मेज foo_bar
के रूप में मॉडलिंग की है।PostgreSQL
अब मैं इसे एक से कई के रूप में मॉडल करना चाहता हूं (जो मेरा डेटा अनुमति देता है)।
मैंने foo_id
कॉलम को bar
पर जोड़ा है लेकिन अब मैं अपना डेटा माइग्रेट करना चाहता हूं। तो, मैं जहां प्रत्येक f
और b
जोड़ी से
SELECT foo_id AS f, bar_id AS b FROM foo_bar;
आ रहे हैं
UPDATE bar SET foo_id = f where id = b;
करना चाहते हैं यह एसक्यूएल (और विशेष रूप से PostgreSQL 9.0) में ऐसा करना संभव है?
मुझे पता है कि अद्यतन में उप-चयन कैसे करें जब केवल एक मान हो, लेकिन इस मामले में इसे कैसे किया जाए।
लाइन पिछले हो fb.bar_id = b.id चाहिए? –
@ जेम्स टाउबर: नहीं। मॉडल में 'आईडी' नहीं होना चाहिए। गैर-वर्णनात्मक कॉलम नाम 'आईडी' का प्रयोग एक विरोधी पैटर्न है। प्राथमिक कुंजी को 'bar_id' नाम दिया जाना चाहिए। –
काफी उचित है, बस मेरे प्रश्न –