Llave primaria compuesta

Iniciado por SilverLycan68, 22 Enero 2019, 21:46 PM

0 Miembros y 1 Visitante están viendo este tema.

SilverLycan68

Lo que necesito es que el ID=MarcaID+(ModeloID/1000) de que forma se podria hacer.

CREATE TABLE `autos` (
  `ID` double NOT NULL,
  `Marca` varchar(40) DEFAULT NULL,
  `MarcaID` int(10) NOT NULL,
  `Modelo` varchar(40) DEFAULT NULL,
  `ModeloID` int(10) NOT NULL,
    PRIMARY KEY (`ID`),
  UNIQUE KEY `ID_UNIQUE` (`ID`)
)

Si he visto que se puede hacer  Primary Key(MarcaID, ModeloID), pero no es lo que necesito.

CREATE TABLE `au1` (
  `MarcaId` int(5) NOT NULL,
  `Marca` varchar(20) DEFAULT NULL,
  `ModeloId` int(5) NOT NULL,
  `Modelo` varchar(20) DEFAULT NULL,
    PRIMARY KEY (`MarcaId`,`ModeloId`)
)

Les agradezco la ayuda.

MCKSys Argentina

Hola!

No soy experto en MySQL, pero lo siguiente parece funcionar:

Código (sql) [Seleccionar]

CREATE TABLE `au1` (
  `MarcaId` int(5) NOT NULL,
  `Marca` varchar(20) DEFAULT NULL,
  `ModeloId` int(5) NOT NULL,
  `Modelo` varchar(20) DEFAULT NULL,
  `Clave` int(5) AS (`MarcaId` + `ModeloId` / 1000),
  PRIMARY KEY (Clave)
)


Probado en: https://es.piliapp.com/mysql-syntax-check/

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."