Ver Mensaje Individual
  #1  
Antiguo 26-03-2008
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Reputación: 20
Angel Fernández Va por buen camino
Verificando si un registro existe

Aquí he encontrado el siguiente truco que me parece muy interesante para saber si existe un registro en una base de datos de Firebird. Dado que no lo he probado aún y que mis conocimientos son bastante limitados, no me he sentido capacitado para ponerlo en la sección "Trucos". He preferido ponerlo en un nuevo hilo y someterlo a vuestra consideración.
Está en portugués de Brasil, pero se entiende relativamente bien.

Saludos al foro.

Verificando se um registro existe (EXISTS function)


Se você precisar saber se um registro existe, a maneira mais comum é a execução do comando abaixo. Se a variável :idexists for maior que zero, o registro existe. (Este é um exemplo de Stored Procedure):

SELECT count(*) FROM company WHERE companyid = :id INTO :idexists;

Mas, o jeito certo de fazer isso é usar a função EXISTS(). Se você usar COUNT(*) o Firebird vai olhar todos os itens para validar a condição (i.e.
companyid = :id).

Se você usar a função EXISTS() o Firebird vai parar de procurar assim que achar um registro que atenda a condição. Isso é muito mais rápido.
idexists = 0;
SELECT 1 FROM rdb$database WHERE EXISTS(SELECT * FROM company WHERE companyid = :id) INTO :idexists;


Postado por Erick Almeida às 7/10/2007 11:21:00 AM


Responder Con Cita