Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mencipta Jadual dalam PostgreSQL Hanya Jika Ia Belum Wujud?

Bagaimanakah Saya Boleh Mencipta Jadual dalam PostgreSQL Hanya Jika Ia Belum Wujud?

Susan Sarandon
Susan Sarandonasal
2025-01-02 18:00:39376semak imbas

How Can I Create a Table in PostgreSQL Only If It Doesn't Already Exist?

Mencipta Jadual Secara Bersyarat dalam PostgreSQL

Dalam MySQL, sintaks CREATE TABLE JIKA TIDAK WUJUD membolehkan anda mencipta jadual hanya jika ia tidak' t sudah wujud. Ini menghalang penciptaan semula jadual secara tidak sengaja apabila menjalankan skrip beberapa kali.

PostgreSQL 9.1 dan Kemudian

PostgreSQL 9.1 memperkenalkan fungsi yang sama seperti MySQL:

CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);

Pra-PostgreSQL 9.1

Untuk versi PostgreSQL yang lebih lama, anda boleh menggunakan fungsi 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$;

Panggil fungsi untuk mencipta jadual:

SELECT create_mytable();

Nota:

  • Jadual pg_tables adalah sensitif huruf besar dan kecil.
  • Fungsi ini hanya menyemak jadual sebenar, bukan objek berkaitan.
  • Pertimbangkan untuk menggunakan kata kunci SECURITY DEFINER jika peranan pelaksana tidak mempunyai keistimewaan yang diperlukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Jadual dalam PostgreSQL Hanya Jika Ia Belum Wujud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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