Drop table
Ushbu qo'llanmada siz mavjud jadvallarni ma'lumotlar bazasidan olib tashlash uchun PostgreSQL DROP TABLE bayonotidan qanday foydalanishni o'rganasiz.
Ma'lumotlar bazasidan jadvalni olib tashlash uchun siz DROP TABLE iborasidan quyidagi tarzda foydalanasiz:
DROP TABLE [IF EXISTS] table_name
[CASCADE | RESTRICT];Ushbu sintaksisda:
Birinchidan,
DROP TABLEkalit so'zlaridan keyin qo'ymoqchi bo'lgan jadval nomini belgilang.Ikkinchidan, agar mavjud bo'lsa, jadvalni o'chirish uchun
IF EXISTSvariantidan foydalaning.
Agar mavjud bo'lmagan jadvalni olib tashlasangiz, PostgreSQL xatolik chiqaradi. Bunday vaziyatdan qochish uchun siz IF EXISTS opsiyasidan foydalanishingiz mumkin.
Agar siz olib tashlamoqchi bo'lgan jadval ko'rinishlar, triggerlar, funktsiyalar va saqlangan protseduralar kabi boshqa ob'ektlarda ishlatilsa, DROP TABLE jadvalni o'chira olmaydi. Bunday holda sizda ikkita variant mavjud:
CASCADEopsiyasi jadval va unga bog'liq ob'ektlarni olib tashlash imkonini beradi.RESTRICTopsiyasi jadvalga bog'liq bo'lgan ob'ekt mavjud bo'lsa, olib tashlashni rad etadi. Agar siz uniDROP TABLEbayonotida aniq ko'rsatmasangiz,RESTRICTopsiyasida default bo'ladi.
Bir vaqtning o'zida bir nechta jadvallarni o'chirish uchun DROP TABLE kalit so'zlaridan keyin vergul bilan ajratilgan jadvallar ro'yxatini qo'yishingiz mumkin:
DROP TABLE [IF EXISTS]
table_name_1,
table_name_2,
...
[CASCADE | RESTRICT];Jadvallarni o'chirish uchun siz superuser, sxema egasi yoki jadval egasi rollariga ega bo'lishingiz kerakligini unutmang.
PostgreSQL DROP TABLE misollari
DROP TABLE misollariKeling, PostgreSQL DROP TABLE bayonotidan foydalanishga misollar keltiraylik
1. Mavjud bo'lmagan jadvalni tashlang
Quyidagi bayonot ma'lumotlar bazasida author deb nomlangan jadvalni olib tashlaydi:
DROP TABLE author;PostgreSQL xatolik yuz beradi, chunki author jadvali mavjud emas.
[Err] ERROR: table "author" does not existXatolikka yo'l qo'ymaslik uchun siz IF EXISST opsiyasidan foydalanishingiz mumkin.
DROP TABLE IF EXISTS author;
NOTICE: table "author" does not exist, skipping DROP TABLENatijadan aniq ko'rinib turibdiki, PostgreSQL xato o'rniga bildirishnoma chiqardi.
2. Bog'liq ob'ektlari bo'lgan jadvalni tashlang
Quyidagilar authors va pages deb nomlangan yangi jadvallarni yaratadi:
CREATE TABLE authors (
author_id INT PRIMARY KEY,
firstname VARCHAR (50),
lastname VARCHAR (50)
);
CREATE TABLE pages (
page_id serial PRIMARY KEY,
title VARCHAR (255) NOT NULL,
contents TEXT,
author_id INT NOT NULL,
FOREIGN KEY (author_id)
REFERENCES authors (author_id)
);Quyidagi ibora muallif jadvalini o'chirish uchun DROP TABLE dan foydalanadi:
DROP TABLE IF EXISTS authors;page jadvalidagi cheklov author bog'liq bo'lgani uchun PostgreSQL xato xabari chiqaradi:
ERROR: cannot drop table authors because other objects depend on it
DETAIL: constraint pages_author_id_fkey on table pages depends on table authors
HINT: Use DROP ... CASCADE to drop the dependent objects too.
SQL state: 2BP01Bunday holda, author jadvalini o'chirishdan oldin barcha bog'liq ob'ektlarni olib tashlashingiz yoki CASCADE opsiyasini quyidagicha ishlatishingiz kerak:
DROP TABLE authors CASCADE;PostgreSQL page jadvalidagi author va cheklovni olib tashlaydi
Agar DROP TABLE iborasi o'chirilayotgan jadvalning bog'liq ob'ektlarini olib tashlasa, u shunday xabar beradi:
NOTICE: drop cascades to constraint pages_author_id_fkey on table pages3. Bir nechta jadvallarni tashlang
Quyidagi bayonotlar demo maqsadlari uchun ikkita jadval yaratadi:
CREATE TABLE tvshows(
tvshow_id INT GENERATED ALWAYS AS IDENTITY,
title VARCHAR,
release_year SMALLINT,
PRIMARY KEY(tvshow_id)
);
CREATE TABLE animes(
anime_id INT GENERATED ALWAYS AS IDENTITY,
title VARCHAR,
release_year SMALLINT,
PRIMARY KEY(anime_id)
);Quyidagi misolda tvshows va animes jadvallarini o'chirish uchun bitta DROP TABLE iborasidan foydalaniladi:
DROP TABLE tvshows, animes;Xulosa
Jadvalni tushirish uchun
DROP TABLEiborasidan foydalaning.Jadvalni va unga bog'liq bo'lgan barcha ob'ektlarni tushirish uchun
CASCADEopsiyasidan foydalaning.
Last updated
Was this helpful?