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

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

Susan Sarandon
Freigeben: 2025-01-02 18:00:39
Original
374 Leute haben es durchsucht

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

Bedingtes Erstellen von Tabellen in PostgreSQL

In MySQL können Sie mit der CREATE TABLE IF NOT EXISTS-Syntax nur dann eine Tabelle erstellen, wenn dies nicht der Fall ist. Es existiert noch nicht. Dies verhindert eine versehentliche Tabellenneuerstellung, wenn ein Skript mehrmals ausgeführt wird.

PostgreSQL 9.1 und höher

PostgreSQL 9.1 führte die gleiche Funktionalität wie MySQL ein:

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

Prä-PostgreSQL 9.1

Für ältere Versionen von PostgreSQL können Sie eine Workaround-Funktion verwenden:

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

Funktion zum Erstellen der Tabelle aufrufen:

SELECT create_mytable();
Nach dem Login kopieren

Hinweise:

  • Die pg_tables-Tabelle ist Groß- und Kleinschreibung wird beachtet.
  • Die Funktion prüft nur auf tatsächliche Tabellen, nicht auf verwandte Objekte.
  • Erwägen Sie die Verwendung des Schlüsselworts SECURITY DEFINER, wenn der ausführenden Rolle die erforderlichen Berechtigungen fehlen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Tabelle in PostgreSQL nur erstellen, 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