Postgresql Boolean को MySQL टिनीट में कैसे बदलें?

Aug 21 2020

मैं एक PostgreSQL टेबल को सभी डेटा के साथ एक MySQL में माइग्रेट करने की कोशिश कर रहा हूं, लेकिन मैं दो कॉलम के कारण माइग्रेट नहीं कर सका। ये कॉलम पोस्टग्रैसक्ल तालिका में बूलियन के रूप में हैं और इन स्तंभों में मान TRUE या FALSE हैं (यह एक स्ट्रिंग की तरह दिखता है)। मैंने MySQL में एक बूलियन कॉलम बनाया लेकिन यह TRUE / FALSE डेटा को स्वीकार नहीं करता है। मुझे इन TRUE / FALSE मूल्यों के लिए बूलियन के बजाय क्या उपयोग करना चाहिए? मैंने टिंटिंट (4) की कोशिश की, लेकिन यह काम नहीं करता है (मुझे डेटा माइग्रेट करना चाहिए क्योंकि यह TRUE या FALSE है, टी / एफ या 1/0 नहीं)।

एक उदाहरण:

Postgresqltable( id bigserial not null, message_listening boolean, ....... ) 
Example record: (1, TRUE, .......)

जवाब

1 kmoser Aug 21 2020 at 14:10

उन्हें प्रवास के रूप में VARCHAR(255)। फिर, उन सभी स्तंभों के लिए जिन्हें आप MySQL में बदलना चाहते हैं TINYINT(1):

  • एक अन्य कॉलम (उदा test) टाइप करेंTINYINT(1)
  • आदेश जारी करें UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 ), bool_colवह स्तंभ कहां है जिसे आप PostgreSQL से स्थानांतरित करते हैं जिसमें बूलियन स्ट्रिंग होती है
  • bool_colकॉलम ड्रॉप करें
  • testस्तंभ का नाम बदलें bool_col(या जो भी आप चाहें)

जिस कॉलम को आप कनवर्ट करना चाहते हैं उसके लिए उपरोक्त चरणों को दोहराएं।