Bonjour,
Je souhaite réaliser un script générique permettant de supprimer toutes les contraintes et toutes les tables d'une bdd donnée.
Voici donc le script que j'ai écrit:
Le problème c'est que ça marche pas ^^.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 -- Procedure generique pour supprimer toutes les contraintes et toutes les tables DECLARE tableName varchar(32), constraintName varchar (32); DECLARE curConstraint CURSOR FOR SELECT T.TABLE_NAME, T.CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS T WHERE T.CONSTRAINT_CATALOG = 'championnat' AND T.CONSTRAINT_SCHEMA = 'public' AND (T.CONSTRAINT_TYPE = 'FOREIGN KEY' OR T.CONSTRAINT_TYPE = 'UNIQUE'); BEGIN; OPEN curConstraint; LOOP FETCH curConstraint INTO tableName, constraintName; IF NOT FOUND THEN EXIT; -- exit loop END IF; SET SQL = 'ALTER TABLE ' || tableName || ' DROP CONSTRAINT ' || constraintName; EXEC (SQL); END LOOP; END; CLOSE curConstraint; DEALLOCATE curConstraint;
J'ai l'erreur suivante:
Est ce que quelqu'un à une idée ou a déjà écrit un script équivalent?ERROR: syntax error at or near "varchar"
LINE 2: DECLARE tableName varchar(32), constraintName varchar (32);
^
********** Erreur **********
ERROR: syntax error at or near "varchar"
État SQL :42601
Caractère : 101
Merci.
Partager