Création de tables dans PostgreSQL sans duplication
Dans MySQL, la syntaxe "CREATE TABLE IF NOT EXISTS" permet de créer une table sans générer une erreur si elle existe déjà. Cela garantit que le script peut être exécuté plusieurs fois sans créer de tables en double. Dans PostgreSQL, cette fonctionnalité a été introduite à partir de la version 9.1.
PostgreSQL 9.1 et versions ultérieures
Pour PostgreSQL 9.1 et versions ultérieures, vous pouvez utiliser la syntaxe suivante pour créer une table :
CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);
Versions PostgreSQL antérieures à 9.1
Pour les versions antérieures de PostgreSQL, il existe une solution de contournement en utilisant une fonction :
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$;
Vous pouvez ensuite appeler la fonction comme suit :
SELECT create_mytable();
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!