Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich Tabellen in PostgreSQL ohne Duplikate?

Wie erstelle ich Tabellen in PostgreSQL ohne Duplikate?

DDD
Freigeben: 2025-01-01 01:18:10
Original
611 Leute haben es durchsucht

How to Create Tables in PostgreSQL without Duplicates?

Erstellen von Tabellen in PostgreSQL ohne Duplizierung

In MySQL können Sie mit der Syntax „CREATE TABLE IF NOT EXISTS“ eine Tabelle ohne Generierung erstellen ein Fehler, wenn er bereits vorhanden ist. Dadurch wird sichergestellt, dass das Skript mehrmals ausgeführt werden kann, ohne dass doppelte Tabellen erstellt werden. In PostgreSQL wurde diese Funktion ab Version 9.1 eingeführt.

PostgreSQL 9.1 und höher

Für PostgreSQL 9.1 und höher können Sie die folgende Syntax verwenden, um eine Tabelle zu erstellen :

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

PostgreSQL-Versionen vor 9.1

Für frühere Versionen von PostgreSQL gibt es einen Workaround mit einer Funktion:

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

Sie können die Funktion dann wie folgt aufrufen:

SELECT create_mytable();
Nach dem Login kopieren

Hinweise:

  • Stellen Sie sicher, dass Ihre Syntax der Groß-/Kleinschreibung des entspricht Schema und Name der Tabelle.
  • Denken Sie daran, dass pg_tables nur tatsächliche Tabellen enthält, daher ist es möglich, dass der Bezeichner von anderen Objekten belegt wird.
  • Wenn der Rolle, die die Funktion ausführt, die erforderlichen Berechtigungen zur Tabellenerstellung fehlen , erwägen Sie die Gewährung dieser Berechtigungen mithilfe der SECURITY DEFINER-Klausel.

Das obige ist der detaillierte Inhalt vonWie erstelle ich Tabellen in PostgreSQL ohne Duplikate?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage