Logo Espacio Linux Paypal - Acepta pagos con tarjeta en tu negocio      
Portada Taller Linux Descargas Foros Buscar Mapa del sitio Ayuda BlogEL
   Iniciar sesión | Registrarse    
 
Principal

Patrocinadores

Anuncios



Boletín Espacio Linux
Las novedades del sitio y el mundo Linux en tu email.


Sitios amigos

Blogs de miembros


Directorio de blogs | Registrarse
Los usuario registrados pueden crear su propio blog y escribir comentarios.

Añadir llave foránea (foreign key) en firebird mediante SQL


Por: xourge
Publicado el: 03-10-2007 @ 07:33 pm


Todos sabemos la escasez  de fronts para firebird, yo por lo general trabajo con el visor de bases de datos del ide que esté usando (netbeans, zend, etc). El problema es que estos IDEs a lo mucho ofrecen herramienta para crear tablas y añadir columnas, ¡pero nada más! asi que tuve que averiguar un poco como añadir llaves foraneas pues tenía una tabla nueva y pasaba su llave primaria como foránea a otras.

La sentencia es:

ALTER TABLE tabla1
ADD CONSTRAINT indextabla1
FOREIGN KEY (campo1tabla1)
REFERENCES tabla2(campo1tabla2)

Donde tabla1 es la tabla donde queremos añadir la llave foránea, y campo1tabla1 es el campo que ya hemos añadido, pero que aun no funciona como llave foránea.

indextabla1 será el nombre del índice que le daremos a esta llave foránea, puede ser cualquier nombre siempre que no haya algun otro índice con ese nombre, por lo general para ser mas ordenados estos indices se llaman FK_tablacampo.

tabla2 es la tabla que entrega su llave primaria (campo1tabla2) a la tabla1 para que aparezca como llaveforanea.

como resultado la tabla1 tendra a campo1tabla1 como llave foranea que apunta a campo1tabla2 de la tabla2



Ultima actualización el 03-11-2007 @ 07:17 pm




Añadir un comentario
Añadir un comentario
Ver más artículos
Ver más artículos

Comentarios

Por: zeka     Publicado el 03-11-2007 @ 08:42 am

Si colocaras la información dentro de algún contexto podría ayudar a muchos a entender el porqué de este artículo. También sería recomendable un ejemplo.
Por: xourge     Publicado el 03-12-2007 @ 12:09 pm

ya está, lo que pasa es que anteriormente lo hice a la pasada porque estaba algo apurado
Por: cdar     Publicado el 03-14-2007 @ 10:04 am

Yo he usado por mucho tiempo firebird y nunca me ha dado problemas con el estandar de sql 92. Algo asi:

alter table tabla1 add column col_nueva foreign key (col_nueva) references tabla2(columna2)
Por: zeka     Publicado el 03-22-2007 @ 07:48 am

A mi también me pasa lo del apuro pero dejo mis artículos poco elaborados en la categoría de "No público" (que no es la opción por defecto) y luego los retomo. Ahora el tuyo si está entendible.

Saludos
Por: xourge     Publicado el 04-06-2007 @ 05:15 pm

cdar probé de la manera que me indicas y me pasó lo siguiente:

SQL> alter table tabla add column columna foreign key (columna) references otratabla(otracolumna);
Statement failed, SQLCODE = -104
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 1, column 34
-column

yo trabajo con sql_dialect=3 no se si eso tendrá algo que ver

Journal ©
 



Copyright | Términos de uso | Política de privacidad | Publicidad | Contáctanos | Blog