Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Crear tabla solo si no existe (https://www.clubdelphi.com/foros/showthread.php?t=66900)

look 17-03-2010 22:45:16

Crear tabla solo si no existe
 
hola compañeros, quiero crear una tabla en una base de datos si no existe, algo asi:
Código SQL [-]
IF NOT EXISTS (select 1 from RDB$RELATIONS where  RDB$RELATION_NAME='TEMP1')
THEN
     CREATE TABLE TEMP1(
              NUM_REG INTEGER,
              CANT FLOAT 
END ;



lo que quiero es ejecutar una consulta que contenga la sql en el oncreate del form, pero no me funciona, ¿Me dan una mano?
utilizo firebird 2.1 , ibexpert

movorack 17-03-2010 23:52:11

Hola... aquí tienes un enlace que te puede ayudar con lo que necesitas.

How to create a table only if it does not exist?

Casimiro Notevi 18-03-2010 00:00:30

No conocía ese sitio, me lo guardo, siempre puede ser interesante :)

jhonny 18-03-2010 03:07:52

Tambien existe la sentencia RECREATE, pero esta eliminará los datos que tengas en caso de que exista y como su nombre lo indica recreará la tabla. En caso de que no exista, pues la crea.

roman 18-03-2010 05:37:45

Supongo que también podría ejecutarse el CREATE así sin más y esperar el error que lance el motor :)

// Saludos

Casimiro Notevi 18-03-2010 10:46:46

Creo recordar que desde hace varias versiones se puede hacer algo así como: create or alter table... , si no existe la crea y si existe la modifica :)

look 18-03-2010 15:08:53

Cita:

Empezado por jhonny (Mensaje 357374)
Tambien existe la sentencia RECREATE, pero esta eliminará los datos que tengas en caso de que exista y como su nombre lo indica recreará la tabla. En caso de que no exista, pues la crea.

ya habia probado lo del recreate , solo me recrea la tabla, no encontre como recrear el index de la tabla

look 18-03-2010 15:10:32

Cita:

Empezado por roman (Mensaje 357383)
Supongo que también podría ejecutarse el CREATE así sin más y esperar el error que lance el motor :)

// Saludos

muy buena idea , no lo habia pensado, podria meter la query en un try excep sin nada en el la ecepcion para no mostrar nada :P, buena idea

look 18-03-2010 15:11:43

Cita:

Empezado por movorack (Mensaje 357341)
Hola... aquí tienes un enlace que te puede ayudar con lo que necesitas.

How to create a table only if it does not exist?

ya habia visto esta pagina pero no me funciona, meto esa consulta en el ibexpert pero no me funka, ¿que podra ser?

TJose 18-03-2010 15:46:57

Cita:

Empezado por Casimiro Notevi (Mensaje 357342)
No conocía ese sitio, me lo guardo, siempre puede ser interesante :)

hace casi 2 años que está en la parte de arriba de este foro:
http://www.clubdelphi.com/foros/showthread.php?t=59194

Casimiro Notevi 18-03-2010 18:11:11

Cita:

Empezado por TJose (Mensaje 357424)
hace casi 2 años que está en la parte de arriba de este foro:
http://www.clubdelphi.com/foros/showthread.php?t=59194

Fíjate... y yo con estos pelos :D, no lo había visto :s


La franja horaria es GMT +2. Ahora son las 01:40:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi