Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 23/05/2017 10:44:22
- marco2
- Membre
Exécuter script plpgsql dans un fichier.sql
peut-on exécuter du pgsql dans un fichier import.sql pour renommer les contraintes d'une table en utilisant Hibernate(jta)?
Voici mon script:
#import.sql
DO
$$
DECLARE
curs CURSOR FOR SELECT * FROM update_foreignkey_constraint;
table_row update_foreignkey_constraint%ROWTYPE;
cons REFCURSOR;
constraint_row INFORMATION_SCHEMA.KEY_COLUMN_USAGE%ROWTYPE;
BEGIN
OPEN curs;
LOOP
FETCH NEXT FROM curs INTO table_row;
EXIT WHEN NOT FOUND;
OPEN cons FOR SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE table_name=table_row.table_name AND constraint_name LIKE'fk%' AND column_name= table_row.column_name;
FETCH NEXT FROM cons INTO constraint_row;
IF FOUND THEN
EXECUTE 'ALTER TABLE '||table_row.table_name||' RENAME CONSTRAINT '||constraint_row.constraint_name ||' TO ' ||table_row.constraint_name;
ELSE
RAISE EXCEPTION 'Nom de table introuvable : %', table_row.table_name;
END IF;
EXIT WHEN NOT FOUND;
RAISE NOTICE '%', constraint_row.constraint_name;
CLOSE cons;
END LOOP;
CLOSE curs;
DROP TABLE public.update_foreignkey_constraint;
EXCEPTION
WHEN duplicate_object THEN
DROP TABLE public.update_foreignkey_constraint;
RAISE NOTICE 'Attention, cette contrainte de clé existe (%).',table_row.constraint_name;
END;
$$;
Hors ligne
#2 23/05/2017 18:57:02
- rjuju
- Administrateur
Re : Exécuter script plpgsql dans un fichier.sql
On peut utiliser une insruction DO dans un script sql.
Julien.
https://rjuju.github.io/
Hors ligne
#3 24/05/2017 11:22:28
- marco2
- Membre
Re : Exécuter script plpgsql dans un fichier.sql
l'instruction DO à bien été utilisée en début du script.
Hors ligne
#4 24/05/2017 11:34:30
- rjuju
- Administrateur
Re : Exécuter script plpgsql dans un fichier.sql
Du coup, je n'ai pas compris quel est votre problème.
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1