Maison > base de données > tutoriel mysql > Comment créer des tables dans PostgreSQL en utilisant « IF NOT EXISTS » ?

Comment créer des tables dans PostgreSQL en utilisant « IF NOT EXISTS » ?

Barbara Streisand
Libérer: 2025-01-04 09:43:40
original
365 Les gens l'ont consulté

How to Create Tables in PostgreSQL Using

Comment créer des tables avec la clause "IF NOT EXISTS" de PostgreSQL

MySQL permet aux utilisateurs de créer des tables avec la clause "IF NOT EXISTS" , en garantissant que la table n'est créée que si elle n'existe pas déjà. Cela évite les erreurs si le script est exécuté plusieurs fois.

Dans PostgreSQL, cette fonctionnalité a été introduite dans la version 9.1, permettant l'utilisation de :

CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);
Copier après la connexion

Pour les versions antérieures de PostgreSQL, les éléments suivants la fonction peut être utilisée comme solution de contournement :

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$;
Copier après la connexion

Cette fonction peut être appelée aussi souvent que nécessaire using :

SELECT create_mytable();
Copier après la connexion

Remarques :

  • Les colonnes schemaname et tablename dans pg_tables sont sensibles à la casse.
  • pg_tables ne contient que le contenu réel tables, donc l'identifiant peut toujours être occupé par des objets associés.
  • Si l'utilisateur exécutant la fonction n'a pas les privilèges nécessaires pour créer la table, l'attribut SECURITY DEFINER peut être utilisé pour la fonction.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal