Estoy intentando crear un script de Firebird que garantice que exista cierto índice y se cree correctamente. Después de un poco de google alrededor, tengo lo que parece ser la sintaxis correcta:¿Cómo puedo hacer un script de índice repetible?
SET TERM^;
execute block as begin
IF (EXISTS(SELECT RDB$INDEX_NAME
FROM RDB$INDICES
WHERE RDB$RELATION_NAME='TABLE_NAME'
and RDB$INDEX_NAME = 'INDEX_NAME')) THEN
execute statement 'drop index INDEX_NAME';
end
SET TERM ;^
CREATE UNIQUE INDEX INDEX_NAME
ON TABLE_NAME
(FIELD1, FIELD2, FIELD3);
Esto ejecutará una vez, y funciona bien. Pero si intento ejecutarlo por segunda vez, aparece el error "el índice ya existe", que indica que la parte execute statement
no se está ejecutando realmente.
¿Qué me estoy perdiendo? ¿Cómo hago que este script funcione correctamente?
Thanks. Eso funciono. –