Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membuat Jadual dalam PostgreSQL tanpa Pendua?

Bagaimana untuk Membuat Jadual dalam PostgreSQL tanpa Pendua?

DDD
Lepaskan: 2025-01-01 01:18:10
asal
608 orang telah melayarinya

How to Create Tables in PostgreSQL without Duplicates?

Mencipta Jadual dalam PostgreSQL tanpa Duplikasi

Dalam MySQL, sintaks "CREATE TABLE JIKA TIDAK WUJUD" membolehkan anda mencipta jadual tanpa menjana ralat jika sudah wujud. Ini memastikan skrip boleh dijalankan beberapa kali tanpa membuat jadual pendua. Dalam PostgreSQL, ciri ini diperkenalkan dalam versi 9.1 dan seterusnya.

PostgreSQL 9.1 dan Kemudian

Untuk PostgreSQL 9.1 dan ke atas, anda boleh menggunakan sintaks berikut untuk mencipta jadual:

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

Versi PostgreSQL Sebelum 9.1

Untuk versi PostgreSQL yang lebih awal, terdapat penyelesaian menggunakan fungsi:

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

Anda kemudian boleh memanggil fungsi sebagai berikut:

SELECT create_mytable();
Salin selepas log masuk

Nota:

  • Pastikan sintaks anda sepadan dengan sensitiviti huruf besar kecil skema dan nama jadual.
  • Ingat bahawa pg_tables hanya mengandungi jadual sebenar, jadi pengecam mungkin diduduki oleh objek lain.
  • Jika peranan yang melaksanakan fungsi tidak mempunyai keistimewaan penciptaan jadual yang diperlukan, pertimbangkan untuk memberikan keistimewaan tersebut menggunakan klausa SECURITY DEFINER.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Jadual dalam PostgreSQL tanpa Pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan