उन चीजों की सूची जो मैं अलग तरीके से करूंगा:
MySQL में MEDIUMINT एक विषम बतख (3 बाइट्स) है। मैं इससे बचूंगा, लेकिन अन्यथा इसे INTEGER पर भी मैप कर दूंगा।
MySQL BOOLEAN (उर्फ BOOL, उर्फ TINYINT(1) ) pg बूलियन प्रकार के साथ संगत नहीं है। आप बूलियन अक्षर के रूप में जो उपयोग करते हैं, उसके आधार पर आप ऐप्स को पोर्ट करने में सक्षम हो भी सकते हैं और नहीं भी। MySQL में, TRUE और FALSE 1 और 0 पूर्णांक मानों को मैप करते हैं। ऐसा लगता है कि पीजी बूलियन प्रकार स्ट्रिंग शाब्दिक संकेतन का उपयोग करता है। तो ऐप्स पोर्टेबल हो भी सकते हैं और नहीं भी - कम से कम यह प्रतिस्थापन में कोई गिरावट नहीं है।
अंत में, आपकी तालिका की अंतिम पंक्ति के लिए मुझे लगता है कि SQLite वाक्यांश को पढ़ना चाहिए:
INTEGER PRIMARY KEY AUTOINCREMENT
यह मोटे तौर पर
. के बराबर हैBIGINT PRIMARY KEY AUTO_INCREMENT
MySQL में। पोस्टग्रेज में, SERIAL डेटाटाइप का परिणाम एक INTEGER कॉलम में होता है, और यह लगभग MySQL के
जैसा ही होगा।INTEGER PRIMARY KEY AUTO_INCREMENT
Postgres में एक BIGSERIAL प्रकार भी होता है, जो SERIAL जैसा ही होता है लेकिन INT प्रकार के बजाय BIGINT प्रकार के साथ होता है।
मुझे क्या याद आया:
मुझे MySQL के लिए INTEGER (उपनाम INT) याद आ रहा है। यह पीजी में INTEGER से तुलनीय है। बहुत महत्वपूर्ण चूक:VARCHAR और CHAR। अर्थात्, MySQL और PG में VARCHAR, और MySQL और PG में CHAR समान हैं, लेकिन MySQL में इन प्रकारों की अधिकतम लंबाई बहुत कम है। MySQL में इन प्रकारों का अधिकतम 64kb से थोड़ा कम हो सकता है, pg 1Gb (बाइट्स) में। वास्तविक लंबाई विनिर्देशक वर्णों की संख्या में व्यक्त किया जाता है, इसलिए यदि आपके पास एक बहु-बाइट वर्ण सेट है, तो आपको उस वर्ण सेट के लिए निर्दिष्ट सैद्धांतिक अधिकतम लंबाई प्राप्त करने के लिए अधिकतम लंबाई को वर्णों की अधिकतम संख्या से विभाजित करना होगा। SQLite में, VARCHAR और CHAR दोनों टेक्स्ट को मैप करते हैं
MySQL और PG में BIT डेटाटाइप में लगभग समान शब्दार्थ हैं, लेकिन MySQL में BIT डेटा प्रकार की अधिकतम लंबाई 64 (बिट्स) है
मुझे लगता है कि MySQL VARBINARY डेटा प्रकार PG के BYTEA डेटाटाइप से सबसे अच्छा तुलनीय है। (लेकिन वास्तव में MySQL के BLOB प्रकार भी उसी पर मैप करते हैं)
MySQL में FLOAT प्रकार पोस्टग्रेज में REAL के बराबर होना चाहिए (और SQLite में भी REAL) MySQL में DECIMAL टाइप पोस्टग्रेज में DECIMAL के बराबर है, सिवाय इसके कि पोस्टग्रेज में, टाइप सटीक पर एक मनमानी सीमा नहीं लगाता है, जबकि में MySQL अधिकतम सटीकता (मेरा मानना है) 70 है। (अर्थात, 70 नंबर की स्थिति) MySQL और Postgres दोनों के लिए, NUMERIC DECIMAL प्रकार के लिए एक उपनाम है।