Change column data type

Ushbu qo'llanma sizga ALTER TABLE iborasi yordamida ustunning ma'lumotlar turini qanday o'zgartirishni bosqichma-bosqich ko'rsatib beradi.

Ustunning ma'lumotlar turini o'zgartirish uchun siz ALTER TABLE iborasidan quyidagi tarzda foydalanasiz:

ALTER TABLE table_name
ALTER COLUMN column_name [SET DATA] TYPE new_data_type;

Keling, bayonotni batafsil ko'rib chiqaylik:

  • Birinchidan, ALTER TABLE kalit so'zlaridan keyin ustunni o'zgartirmoqchi bo'lgan jadval nomini belgilang.

  • Ikkinchidan, ALTER COLUMN bandidan keyin ma'lumotlar turini o'zgartirmoqchi bo'lgan ustun nomini belgilang.

  • Uchinchidan, TYPE kalit so'zidan keyin ustun uchun yangi ma'lumotlar turini kiriting. SET DATA TYPE va TYPE ekvivalentdir.

Bitta bayonotda bir nechta ustunlarning ma'lumotlar turlarini o'zgartirish uchun siz bir nechta ALTER COLUMN bandlaridan foydalanasiz:

ALTER TABLE table_name
ALTER COLUMN column_name1 [SET DATA] TYPE new_data_type,
ALTER COLUMN column_name2 [SET DATA] TYPE new_data_type,
...;

Ushbu sintaksisda siz har bir ALTER COLUMN bandidan keyin vergul (,) qo'shasiz.

PostgreSQL sizga quyidagi tarzda USING bandini qo'shish orqali ma'lumotlar turini o'zgartirganda ustun qiymatlarini yangilariga aylantirish imkonini beradi:

ALTER TABLE table_name
ALTER COLUMN column_name TYPE new_data_type USING expression;

USING bandi eski qiymatlarni yangilariga aylantirish imkonini beruvchi ifodani belgilaydi.

Agar siz USING bandini o'tkazib yuborsangiz, PostgreSQL qiymatlarni bilvosita yangilariga o'tkazadi. Translatsiya muvaffaqiyatsiz bo'lsa, PostgreSQL xatolik chiqaradi va ma'lumotlarni konvertatsiya qilish uchun USING bandini taqdim etishingizni tavsiya qiladi.

USING kalit so'zidan keyingi ibora column_name::new_data_type kabi oddiy bo'lishi mumkin, masalan, price::numeric yoki maxsus funksiya kabi murakkab.

PostgreSQL ustun turini o'zgartirishga misollar

Keling, assets deb nomlangan yangi jadval yaratamiz va namoyish qilish uchun jadvalga bir nechta qatorlarni kiritamiz.

assets

name ustunining ma'lumotlar turini VARCHAR ga o'zgartirish uchun siz quyidagi bayonotdan foydalanasiz:

Quyidagi bayonot description va location ustunlarining ma'lumotlar turlarini TEXT dan VARCHAR ga o'zgartiradi:

asset_no ustunining ma'lumotlar turini butun songa o'zgartirish uchun siz quyidagi bayonotdan foydalanasiz:

PostgreSQL xato va juda foydali maslahat berdi:

Quyidagi bayonot yuqoridagi bayonotga USING bandini qo'shadi:

Kutilganidek ishladi.

Ushbu qo'llanmada siz ustun turini o'zgartirish uchun ALTER TABLE ALTER COLUMN bayonotidan qanday foydalanishni o'rgandingiz.

© postgresqltutorial.com

Last updated

Was this helpful?