Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich eine Tabelle in PostgreSQL nur, wenn sie noch nicht vorhanden ist?

Wie erstelle ich eine Tabelle in PostgreSQL nur, wenn sie noch nicht vorhanden ist?

Mary-Kate Olsen
Freigeben: 2024-12-30 15:02:10
Original
369 Leute haben es durchsucht

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

Erstellen von Tabellen mit „CREATE TABLE IF NOT EXISTS“ in PostgreSQL

Es besteht die Möglichkeit, eine Tabelle nur zu erstellen, wenn sie noch nicht vorhanden ist Eine nützliche Funktion, um sicherzustellen, dass Tabellen nur einmal erstellt werden, auch wenn ein Skript mehrmals ausgeführt wird.

In MySQL ist dies möglich mit der Anweisung implementiert werden:

CREATE TABLE IF NOT EXISTS foo ...;
Nach dem Login kopieren

PostgreSQL

In PostgreSQL-Versionen 9.1 und höher wird die Syntax „CREATE TABLE IF NOT EXISTS“ unterstützt:

CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);
Nach dem Login kopieren

Problemumgehung für ältere Menschen Versionen

Für PostgreSQL-Versionen vor 9.1 kann eine Funktion verwendet werden, um die gleiche Funktionalität zu erreichen:

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$;
Nach dem Login kopieren

Diese Funktion kann nur dann mehrmals aufgerufen werden, um die Tabelle zu erstellen, wenn sie vorhanden ist existiert nicht.

Hinweise:

  • Die Funktion create_mytable() geht davon aus, dass die Tabelle im Myschema-Schema erstellt wird.
  • Wenn der Benutzer, der diese Funktion ausführt, nicht über die erforderlichen Berechtigungen zum Erstellen der Tabelle verfügt, muss möglicherweise das Attribut SECURITY DEFINER verwendet werden, um den Erfolg sicherzustellen Ausführung.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Tabelle in PostgreSQL nur, wenn sie noch nicht vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage