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:
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;
Le problème c'est que ça marche pas ^^.

J'ai l'erreur suivante:
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
Est ce que quelqu'un à une idée ou a déjà écrit un script équivalent?

Merci.