วิธีการแปลง Postgresql Boolean เป็น MySQL Tinyint
Aug 21 2020
ฉันพยายามย้ายตาราง PostgreSQL ไปยัง MySQL พร้อมข้อมูลทั้งหมด แต่ไม่สามารถย้ายได้เนื่องจากมีสองคอลัมน์ คอลัมน์เหล่านี้อยู่ในตาราง Postgresql เป็นบูลีนและค่าในคอลัมน์เหล่านี้คือ TRUE หรือ FALSE (ดูเหมือนสตริง) ฉันสร้างคอลัมน์บูลีนใน MySQL แต่ไม่ยอมรับข้อมูล TRUE / FALSE ฉันควรใช้อะไรแทนบูลีนสำหรับค่า TRUE / FALSE เหล่านี้ ฉันลองใช้ tinyint (4) แต่ไม่ได้ผล (ฉันต้องย้ายข้อมูลเนื่องจากเป็น TRUE หรือ FALSE ไม่ใช่ t / f หรือ 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) - ออกคำสั่งคอลัมน์ที่คุณย้ายจาก PostgreSQL ซึ่งมีสตริงบูลีน
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 )อยู่ที่ไหนbool_col - วาง
bool_colคอลัมน์ - เปลี่ยนชื่อ
testคอลัมน์เป็นbool_col(หรืออะไรก็ได้ที่คุณต้องการ)
ทำซ้ำขั้นตอนข้างต้นสำหรับแต่ละคอลัมน์ที่คุณต้องการแปลง