Vous n'êtes pas identifié(e).
Pages : 1
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
On peut utiliser une insruction DO dans un script sql.
Julien.
https://rjuju.github.io/
Hors ligne
l'instruction DO à bien été utilisée en début du script.
Hors ligne
Du coup, je n'ai pas compris quel est votre problème.
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1