Drop column

Ushbu qo'llanma sizga jadvalning bir yoki bir nechta ustunlarini olib tashlash uchun ALTER TABLE bayonotidagi PostgreSQL DROP COLUMN bandidan qanday foydalanishni ko'rsatadi.

Jadval ustunini o'chirish uchun siz ALTER TABLE iborasida quyidagi tarzda DROP COLUMN bandidan foydalanasiz:

ALTER TABLE table_name 
DROP COLUMN column_name;

Jadvaldan ustunni olib tashlaganingizda, PostgreSQL o'chirilgan ustunga taalluqli barcha indekslar va cheklovlarni avtomatik ravishda olib tashlaydi. Agar siz olib tashlamoqchi bo'lgan ustun ko'rinishlar, triggerlar, saqlangan protseduralar va boshqalar kabi boshqa ma'lumotlar bazasi ob'ektlarida ishlatilsa, ustunni o'chirib bo'lmaydi, chunki boshqa ob'ektlar unga bog'liq. Bunday holda, ustunni va unga bog'liq bo'lgan barcha ob'ektlarni tushirish uchun CASCADE opsiyasini DROP COLUMN bandiga qo'shishingiz kerak:

ALTER TABLE table_name 
DROP COLUMN column_name CASCADE;

Agar mavjud bo'lmagan ustunni olib tashlasangiz, PostgreSQL xatolik chiqaradi. Ustunni faqat mavjud bo'lsa olib tashlash uchun IF EXISTS opsiyasini quyidagi tarzda qo'shishingiz mumkin:

ALTER TABLE table_name 
DROP COLUMN IF EXISTS column_name;

Ushbu shaklda mavjud bo'lmagan ustunni olib tashlasangiz, PostgreSQL xato o'rniga xabar beradi.

Agar bitta buyruqda jadvalning bir nechta ustunlarini tashlamoqchi bo'lsangiz, quyidagi kabi bir nechta DROP COLUMN bandidan foydalanasiz:

ALTER TABLE table_name
DROP COLUMN column_name1,
DROP COLUMN column_name2,
...;

E'tibor bering, har bir DROP COLUMN bandidan keyin vergul (,) qo'shishingiz kerak.

Jadvalda bitta ustun bo'lsa, uni ALTER TABLE DROP COLUMN iborasi yordamida tashlab qo'yishingiz mumkin. Jadvalda ustun yo'q. Bu PostgreSQL-da mumkin, ammo SQL standartiga ko'ra mumkin emas.

ALTER TABLE DROP COLUMN bayonoti qanday ishlashini ko'rish uchun ba'zi misollarni ko'rib chiqamiz.

PostgreSQL DROP COLUMN misollari

Biz uchta jadval yaratamiz: books, categories va namoyish uchun publishers.

tables

Ushbu diagrammada har bir kitobda faqat bitta nashriyot bor va har bir nashriyot ko'plab kitoblarni nashr etishi mumkin. Har bir kitob toifaga ajratilgan va har bir turkumda ko'plab kitoblar bo'lishi mumkin

Quyidagi bayonotlar uchta jadvalni yaratadi:

Bundan tashqari, biz books va publishers jadvallari asosida quyidagi ko'rinishni yaratamiz:

Quyidagi bayonot books jadvalidan category_id ustunini olib tashlash uchun ALTER TABLE DROP COLUMN iborasidan foydalanadi:

Keling, books jadvalining tuzilishini ko'rsatamiz:

Natijadan ko'rinib turibdiki, bayonot nafaqat category_id ustunini, balki category_id ustunini o'z ichiga olgan tashqi kalit cheklovini ham olib tashladi.

Quyidagi bayonot publisher_id ustunini olib tashlashga harakat qiladi:

PostgreSQL quyidagi xatoni chiqardi:

Unda aytilishicha, book_info koʻrinishi books jadvalining publisher_id ustunidan foydalanmoqda. Quyidagi bayonotda ko'rsatilganidek, publisher_id ustuni va book_info ko'rinishini olib tashlash uchun CASCADE opsiyasidan foydalanishingiz kerak:

Bayonotda biz kutgan narsa bo'lgan quyidagi xabarnoma e'lon qilindi.

Bitta bayonot yordamida isbn va description ustunlarini olib tashlash uchun siz quyidagi tarzda bir nechta DROP COLUMN bandlarini qo'shishingiz kerak:

Kutilganidek ishladi.

Ushbu qo'llanmada siz jadvaldan bir yoki bir nechta ustunlarni tushirish uchun ALTER TABLE bayonotidagi PostgreSQL DROP COLUMN bandidan qanday foydalanishni o'rgandingiz.

© postgresqltutorial.com

Last updated

Was this helpful?