Ver Mensaje Individual
  #6  
Antiguo 07-11-2015
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Gracias por la respuesta. Creo que no me he explicado bien y me has dado una pista para solucionarlo. Vamos por partes.

La tabla a la que me refiero en el ejemplo es esta:
Código SQL [-]
CREATE TABLE Afiliacion (CodPrv SMALLINT NOT NULL, Codigo SMALLINT NOT NULL, 
Nombre VARCHAR(30) NOT NULL, Ant_Codigo SMALLINT, 
CONSTRAINT PK_Afiliacion PRIMARY KEY (CodPrv, Codigo))
Como ves los dos primeros campos son los que están en la clave primaria. No se me había ocurrido ese posible problema que indicas con la clave; es evidente que poniendo el código provincial como VARCHAR(2) se elimina dicho problema.

El campo Codigo es (o debería serlo) autoincremental. Y es aquí donde me surgen las dudas: Si no estuviera el campo de la provincia no tendría problema; pero al estar ese campo en la calve primaria ¿cómo haría para crear dicho valor? Es decir, y poniendo el código provincial como VARCAHR (tienes razón: es mejor), para que fuera 011, 012, 013, etc.

Con un trigger, por lo que llevo leído y entendido, no se podría ya que en los mismos no se pueden usar variables y si se pueden usar no veo como llamar a una que está definida en el programa. Es decir: en un query podría hacer esto:
Código PHP:
Query->SQL->Text "SELECT * FROM Afiliacion WHERE CodPrv = :Provincia";
Query->ParamByName("Provincia")->AsString "45"
¿se puede hacer algo similar en un trigger?

Última edición por Casimiro Notevi fecha: 07-11-2015 a las 12:44:35.
Responder Con Cita