DROP TABLE - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

DROP TABLE

Menghapus tabel dari database.

Jika Anda mencoba mengosongkan tabel baris, tanpa menghapus tabel, gunakan TRUNCATE perintah DELETE or.

DROPTABLEmenghapus kendala yang ada pada tabel target. Beberapa tabel dapat dihapus dengan satu DROP TABLE perintah.

DROPTABLEdengan tabel eksternal tidak dapat dijalankan di dalam transaksi (BEGIN...END). Untuk informasi lebih lanjut tentang transaksi, lihatIsolasi yang dapat diserialisasi.

Untuk menemukan contoh di mana DROP hak istimewa diberikan kepada grup, lihat GRANTContoh.

Hak istimewa yang diperlukan

Berikut ini adalah hak istimewa yang diperlukan untuk DROPTABLE:

  • Superuser

  • Pengguna dengan hak DROP TABLE istimewa

  • Pemilik meja dengan hak USAGE istimewa pada skema

Sintaks

DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

Parameter

JIKA EXISTS

Klausa yang menunjukkan bahwa jika tabel yang ditentukan tidak ada, perintah tidak boleh membuat perubahan dan mengembalikan pesan bahwa tabel tidak ada, daripada berakhir dengan kesalahan.

Klausa ini berguna saat membuat skrip, sehingga skrip tidak gagal jika DROP TABLE dijalankan terhadap tabel yang tidak ada.

name

Nama tabel untuk dijatuhkan.

CASCADE

Klausa yang menunjukkan untuk secara otomatis menjatuhkan objek yang bergantung pada tabel, seperti tampilan.

Untuk membuat tampilan yang tidak bergantung pada objek database lainnya, seperti tampilan dan tabel, sertakan SCHEMA BINDING klausa WITH NO dalam definisi tampilan. Untuk informasi selengkapnya, lihat CREATE VIEW.

RESTRICT

Klausul yang menunjukkan untuk tidak menjatuhkan tabel jika ada objek yang bergantung padanya. Tindakan ini adalah default.

Contoh

Menjatuhkan tabel tanpa dependensi

Contoh berikut membuat dan menjatuhkan tabel yang disebut FEEDBACK yang tidak memiliki dependensi:

create table feedback(a int); drop table feedback;

Jika tabel berisi kolom yang direferensikan oleh tampilan atau tabel lain, Amazon Redshift menampilkan pesan seperti berikut ini.

Invalid operation: cannot drop table feedback because other objects depend on it

Menjatuhkan dua tabel secara bersamaan

Set perintah berikut membuat FEEDBACK tabel dan BUYERS tabel dan kemudian menjatuhkan kedua tabel dengan satu perintah:

create table feedback(a int); create table buyers(a int); drop table feedback, buyers;

Menjatuhkan tabel dengan ketergantungan

Langkah-langkah berikut menunjukkan cara menjatuhkan tabel yang disebut FEEDBACK menggunakan CASCADE sakelar.

Pertama, buat tabel sederhana yang disebut FEEDBACK menggunakan CREATE TABLE perintah:

create table feedback(a int);

Selanjutnya, gunakan CREATE VIEW perintah untuk membuat tampilan yang disebut FEEDBACK _ VIEW yang bergantung pada tabelFEEDBACK:

create view feedback_view as select * from feedback;

Contoh berikut menjatuhkan tabel FEEDBACK dan juga menjatuhkan tampilan FEEDBACK _VIEW, VIEW karena FEEDBACK _ bergantung pada tabelFEEDBACK:

drop table feedback cascade;

Melihat dependensi untuk tabel

Untuk mengembalikan dependensi untuk tabel Anda, gunakan contoh berikut. Ganti my_schema and my_table dengan skema dan meja Anda sendiri.

SELECT dependent_ns.nspname as dependent_schema , dependent_view.relname as dependent_view , source_ns.nspname as source_schema , source_table.relname as source_table , pg_attribute.attname as column_name FROM pg_depend JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid JOIN pg_class as dependent_view ON pg_rewrite.ev_class = dependent_view.oid JOIN pg_class as source_table ON pg_depend.refobjid = source_table.oid JOIN pg_attribute ON pg_depend.refobjid = pg_attribute.attrelid AND pg_depend.refobjsubid = pg_attribute.attnum JOIN pg_namespace dependent_ns ON dependent_ns.oid = dependent_view.relnamespace JOIN pg_namespace source_ns ON source_ns.oid = source_table.relnamespace WHERE source_ns.nspname = 'my_schema' AND source_table.relname = 'my_table' AND pg_attribute.attnum > 0 ORDER BY 1,2 LIMIT 10;

Untuk menjatuhkan my_table dan dependensinya, gunakan contoh berikut. Contoh ini juga mengembalikan semua dependensi untuk tabel yang telah dijatuhkan.

DROP TABLE my_table CASCADE; SELECT dependent_ns.nspname as dependent_schema , dependent_view.relname as dependent_view , source_ns.nspname as source_schema , source_table.relname as source_table , pg_attribute.attname as column_name FROM pg_depend JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid JOIN pg_class as dependent_view ON pg_rewrite.ev_class = dependent_view.oid JOIN pg_class as source_table ON pg_depend.refobjid = source_table.oid JOIN pg_attribute ON pg_depend.refobjid = pg_attribute.attrelid AND pg_depend.refobjsubid = pg_attribute.attnum JOIN pg_namespace dependent_ns ON dependent_ns.oid = dependent_view.relnamespace JOIN pg_namespace source_ns ON source_ns.oid = source_table.relnamespace WHERE source_ns.nspname = 'my_schema' AND source_table.relname = 'my_table' AND pg_attribute.attnum > 0 ORDER BY 1,2 LIMIT 10; +------------------+----------------+---------------+--------------+-------------+ | dependent_schema | dependent_view | source_schema | source_table | column_name | +------------------+----------------+---------------+--------------+-------------+

Menjatuhkan tabel Menggunakan IF EXISTS

Contoh berikut akan menjatuhkan FEEDBACK tabel jika ada, atau tidak melakukan apa-apa dan mengembalikan pesan jika tidak:

drop table if exists feedback;