Vous n'êtes pas identifié(e).
Pages : 1
l'instruction DO à bien été utilisée en début du script.
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;
$$;
oui j'ai la commande DO $$ mais quand je démarre mon serveur il me dit qu'il y'a une erreur il ne reconnaît pas la commande declare du plpgsql.
Peut-on exécuter un fichier.sql contenant des commandes plpgsql avec hibernate pour modifier une table?
si oui un exemple de fichier.sql
Pages : 1