Tema: primary key
Ver Mensaje Individual
  #7  
Antiguo 14-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Esto también debe dejarte como enseñanza... sobre todo con interbase, darle un nombre a todos los constraints que creas, porque el interprete de SQL te lo exigirá cuando querras alterarlos o borrarlos. Si no lo has hecho, en cada instancia de la base de datos que crees, los constriaints podrian tener nombres distintos, con lo que siempre vas a tener que averiguar primero el nombre del constraint antes de poder aplicar un script. Yo personalmente considero que esta es una deficiencia de la base de datos...

De esta forma la sentencia de creación de una tabla debiera parecerse a:

Create table Tabla (
Campo1 Tipo Not Null,
Campo2 Tipo Not Null,
Campo3 Tipo,
Constraint ElNombreDelConstraint
Primary Key (Campo1, Campo2),
Constraint ElNombreDelCheck
Check (Campo3 is null or Campo3 = 'VALOR')
);

Yo he tenido bastante problema con los checks... pues la costumbre del nombrar los otros constraints (aunque no sea necesario en otros SGDB's) ya la traia de antes, pero NUNCA habia nombrado un check, ya que siempre podia usar:

Alter table TalTabla Modify Columna Drop Check;

pero en interbase no hay NADA EQUIVALENTE... o al menos yo no lo he encontrado.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita