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 TABLE
kalit so'zlaridan keyin qo'ymoqchi bo'lgan jadval nomini belgilang.Ikkinchidan, agar mavjud bo'lsa, jadvalni o'chirish uchun
IF EXISTS
variantidan 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:
CASCADE
opsiyasi jadval va unga bog'liq ob'ektlarni olib tashlash imkonini beradi.RESTRICT
opsiyasi jadvalga bog'liq bo'lgan ob'ekt mavjud bo'lsa, olib tashlashni rad etadi. Agar siz uniDROP TABLE
bayonotida aniq ko'rsatmasangiz,RESTRICT
opsiyasida 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 exist
Xatolikka yo'l qo'ymaslik uchun siz IF EXISST
opsiyasidan foydalanishingiz mumkin.
DROP TABLE IF EXISTS author;
NOTICE: table "author" does not exist, skipping DROP TABLE
Natijadan 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: 2BP01
Bunday 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 pages
3. 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 TABLE
iborasidan foydalaning.Jadvalni va unga bog'liq bo'lgan barcha ob'ektlarni tushirish uchun
CASCADE
opsiyasidan foydalaning.
Last updated
Was this helpful?