Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Listar las llaves primarias de una tabla FireBird (https://www.clubdelphi.com/foros/showthread.php?t=80831)

jhonny 15-08-2007 18:15:07

Listar las llaves primarias de una tabla FireBird
 
Esta consulta SQL muestra los campos que conforman la llave primaria de una tabla FireBird...


Código SQL [-]
select s.rdb$field_name from rdb$indices i
INNER JOIN rdb$index_segments s ON(i.rdb$unique_flag=1 and
i.rdb$relation_name=:tabla and s.rdb$index_name=i.rdb$index_name)

Esta consulta me sirvió para hacer un aplicativo que actualizaba información de una BD a otra, para la cual era necesario usar la sentencia UPDATE.

jhonny 15-08-2007 18:17:20

Como ven la consulta tiene un parametro llamado :tabla, el cual es el nombre de la tabla.

SSoft 21-12-2007 15:07:04

Saludos a todos!. He adoptado como caballo de batalla el InterBase, pero hube de limitarme a la versión 5.5 pues con la 6 ya tenía problemas de bloqueo del PC, y tengo entendido que el FireBird es un perfeccionamiento del InterBase, realizado por programadores "libres" por lo que planeo "migrar" a esta base de datos.

Kipow 30-04-2008 14:17:42

Quisiera agregar algo, ya que la sentencia anterior regresa todos los indices del tipo UNIQUE para obtener solamente los campos de la llave primaria podemos utilizar la siguiente sentencia SQL

Código SQL [-]
select s.*
from (rdb$indices i INNER JOIN rdb$index_segments s ON (i.rdb$unique_flag=1 and i.rdb$relation_name=:tabla and s.rdb$index_name=i.rdb$index_name)) INNER JOIN rdb$relation_constraints A
      ON s.rdb$index_name=a.rdb$index_name and rdb$constraint_type = 'PRIMARY KEY'

ASAPLTDA 16-05-2019 03:13:48

Indices Primarios
 
IGUAL ADIONANDO LA ULTIMA LINEA
Código SQL [-]
select s.rdb$field_name, I.* from rdb$indices i
INNER JOIN rdb$index_segments s ON(i.rdb$unique_flag=1 and
i.rdb$relation_name=:tabla and s.rdb$index_name=i.rdb$index_name)
WHERE I.RDB$INDEX_ID = 1
GRACIAS JHONNY, KIPOW :)

Casimiro Notevi 16-05-2019 08:07:42

"Parecemos" novatos, escribiendo todo en mayúsculas, no poniendo las etiquetas para el código... ;)


La franja horaria es GMT +2. Ahora son las 20:35:15.

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