Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membuat Jadual dalam PostgreSQL Menggunakan 'JIKA TIDAK WUJUD'?

Bagaimana untuk Membuat Jadual dalam PostgreSQL Menggunakan 'JIKA TIDAK WUJUD'?

Barbara Streisand
Lepaskan: 2025-01-04 09:43:40
asal
409 orang telah melayarinya

How to Create Tables in PostgreSQL Using

Cara Membuat Jadual dengan Klausa "IF NOT EXISTS" PostgreSQL

MySQL membenarkan pengguna mencipta jadual dengan klausa "IF NOT EXISTS" , memastikan bahawa jadual hanya dibuat jika ia belum wujud. Ini menghalang ralat jika skrip dijalankan beberapa kali.

Dalam PostgreSQL, ciri ini telah diperkenalkan dalam versi 9.1, membenarkan penggunaan:

CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);
Salin selepas log masuk

Untuk versi PostgreSQL yang lebih awal, perkara berikut fungsi boleh digunakan sebagai penyelesaian:

CREATE OR REPLACE FUNCTION create_mytable()
  RETURNS void
  LANGUAGE plpgsql AS
$func$
BEGIN
   IF EXISTS (SELECT FROM pg_catalog.pg_tables 
              WHERE  schemaname = 'myschema'
              AND    tablename  = 'mytable') THEN
      RAISE NOTICE 'Table myschema.mytable already exists.';
   ELSE
      CREATE TABLE myschema.mytable (i integer);
   END IF;
END
$func$;
Salin selepas log masuk

Fungsi ini boleh dipanggil sekerap yang diperlukan menggunakan:

SELECT create_mytable();
Salin selepas log masuk

Nota:

  • Lajur skema dan nama jadual dalam pg_tables adalah sensitif huruf besar dan kecil.
  • pg_tables hanya mengandungi sebenar jadual, jadi pengecam mungkin masih diduduki oleh yang berkaitan objek.
  • Jika pengguna yang melaksanakan fungsi tidak mempunyai keistimewaan yang diperlukan untuk mencipta jadual, atribut SECURITY DEFINER boleh digunakan untuk fungsi tersebut.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Jadual dalam PostgreSQL Menggunakan 'JIKA TIDAK WUJUD'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan