จะเปลี่ยนประเภทข้อมูลของคอลัมน์ในตาราง PostgreSQL ได้อย่างไร


108

การป้อนคำสั่งต่อไปนี้ในเทอร์มินัลแบบโต้ตอบ PostgreSQL ทำให้เกิดข้อผิดพลาด:

ALTER TABLE tbl_name ALTER COLUMN col_name varchar (11);

คำสั่งที่ถูกต้องในการเปลี่ยนแปลงชนิดข้อมูลของคอลัมน์คืออะไร?

คำตอบ:


176

ดูเอกสารที่นี่: http://www.postgresql.org/docs/current/interactive/sql-altertable.html

ALTER TABLE tbl_name ALTER COLUMN col_name TYPE varchar (11);

29
สำหรับบางกรณีคุณอาจต้องระบุวิธีการแคสต์เช่นALTER TABLE tbl_name ALTER COLUMN col_name TYPE integer USING col_name::integer;
โนบุ

3
@ โนบุทำไมเราต้องทำแบบนี้some casesและกรณีเหล่านั้นคืออะไร?
Darth.Vader

2
@ Darth.Vader คุณอาจต้องทำเช่นนี้เมื่อมีข้อมูลอยู่แล้วในคอลัมน์ซึ่งไม่สามารถส่งโดยอัตโนมัติได้
Jonathan Porter

อีกตัวอย่างหนึ่งสำหรับการแคสต์: ฉันมีคอลัมน์ jsonb พร้อมข้อมูลที่มีอยู่ซึ่งฉันต้องการแปลงเป็นข้อความ
jmathew
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.