Création de tables avec "CREATE TABLE IF NOT EXISTS" dans PostgreSQL
La possibilité de créer une table uniquement si elle n'existe pas déjà est une fonctionnalité utile pour garantir que les tables ne sont créées qu'une seule fois, même si un script est exécuté plusieurs fois.
Dans MySQL, cette fonctionnalité peut être implémenté à l'aide de l'instruction :
CREATE TABLE IF NOT EXISTS foo ...;
PostgreSQL
Dans les versions PostgreSQL 9.1 et ultérieures, la syntaxe "CREATE TABLE IF NOT EXISTS" est prise en charge :
CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);
Solution de contournement pour les personnes âgées Versions
Pour les versions PostgreSQL antérieures à 9.1, une fonction peut être utilisée pour obtenir la même fonctionnalité :
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$;
Cette fonction peut être appelée plusieurs fois pour créer la table uniquement si elle n'existe pas.
Remarques :
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!