so basically I'm trying to create multiple tables at the same time from a Entity Relation diagram from lucidchart which it generates the query of the the E-R
CREATE TABLE `Centro_Vacunacion` (
`ID_Centro_Vacunacion` INT,
`Direccion_Centro_Vacunacion` NVARCHAR,
`Fecha_Inicio_Operacion` DATE,
`ID_Provincia` INT,
PRIMARY KEY (`ID_Centro_Vacunacion`)
);
CREATE TABLE `Personal_Medico` (
`ID_Personal_Medico` INT,
`Nombre_Personal_Medico` NVARCHAR,
`Apellido_Personal_Medico` NVARCHAR,
`Cedula_Personal_Medico` TINYINT,
PRIMARY KEY (`ID_Personal_Medico`),
KEY `UNIQUE` (`Cedula_Personal_Medico`)
);
CREATE TABLE `Personal_Centro` (
`ID_Personal_Medico` INT,
`ID_Centro_Vacunacion` INT,
FOREIGN KEY (`ID_Personal_Medico`) REFERENCES `Centro_Vacunacion`(`Fecha_Inicio_Operacion`),
FOREIGN KEY (`ID_Personal_Medico`) REFERENCES `Personal_Medico`(`Nombre_Personal_Medico`)
);
CREATE TABLE `Provincia` (
`ID_Provincia` INT,
`Nombre_Provincia` NVARCHAR,
`ID_Pais` INT,
PRIMARY KEY (`ID_Provincia`)
);
CREATE TABLE `Almacen` (
`ID_Almacen` INT,
`Nombre_Almacen` NVARCHAR,
`Direccion_Almacen` TINYTEXT,
`Cantidad_Vacunas` INT,
`Cantidad_Lotes` INT,
`ID_Vacuna` INT,
PRIMARY KEY (`ID_Almacen`)
);
CREATE TABLE `Persona` (
`ID_Persona` INT,
`Nombre_Persona` NVARCHAR,
`Apellido_Persona` NVARCHAR,
`Cedula_Persona` TINYINT,
`Fecha_Nacimiento` DATE,
`Sexo` NVARCHAR(12),
PRIMARY KEY (`ID_Persona`),
KEY `UNIQUE` (`Cedula_Persona`)
);
CREATE TABLE `Municipio` (
`ID_Municpio` INT,
`Nombre_Municipio` NVARCHAR,
`ID_Provincia` INT,
PRIMARY KEY (`ID_Municpio`),
FOREIGN KEY (`ID_Municpio`) REFERENCES `Provincia`(`ID_Provincia`)
);
CREATE TABLE `Pais` (
`ID_Pais` INT,
`Nombre_Pais` NVARCHAR,
PRIMARY KEY (`ID_Pais`)
);
CREATE TABLE `Laboratorio` (
`ID_Laboratorio` INT,
`Nombre_Laboratorio` NVARCHAR,
`Direccion_Laboratorio` NVARCHAR,
`Fecha_Registro` DATE,
`ID_Pais` INT,
`Vacunas_En_Laboratorio` INT,
PRIMARY KEY (`ID_Laboratorio`),
FOREIGN KEY (`Direccion_Laboratorio`) REFERENCES `Pais`(`ID_Pais`)
);
CREATE TABLE `Vacuna` (
`ID_Vacuna` INT,
`Nombre_Vacuna` NVARCHAR,
`Lote` NVARCHAR,
`Laboratorio_Fabricacion` TINYTEXT(50),
`Cantidad_Dosis` TINYINT,
`Intervalo_Dosis` TINYINT,
`Fecha_Creacion` DATE,
`Fecha_Vencimiento` DATE,
`ID_Almacen` INT,
PRIMARY KEY (`ID_Vacuna`)
);
CREATE TABLE `Datos_Vacunacion` (
`ID_Centro_Vacunacion` INT,
`ID_Persona` INT,
`Edad_Actual` TINYINT,
`ID_Vacuna` INT,
`Fecha_Vacunacion` DATE,
`ID_Personal_Medico` INT,
PRIMARY KEY (`ID_Centro_Vacunacion`),
FOREIGN KEY (`Edad_Actual`) REFERENCES `Persona`(`Apellido_Persona`),
FOREIGN KEY (`Edad_Actual`) REFERENCES `Vacuna`(`Laboratorio_Fabricacion`)
);
CREATE TABLE `Vacuna_Laboratorio` (
`ID_Vacuna` INT,
`ID_Laboratorio` INT,
`Vacunas_Totales_Producidas` INT
);
CREATE TABLE `Centro_Almacen` (
`ID_Centro_Vacunacion` INT,
`ID_Almacen` INT,
FOREIGN KEY (`ID_Almacen`) REFERENCES `Almacen`(`Direccion_Almacen`),
FOREIGN KEY (`ID_Centro_Vacunacion`) REFERENCES `Centro_Vacunacion`(`Direccion_Centro_Vacunacion`)
);
When ever I run the query I get a syntax error but I cant figure out where. I ve tried to recreate one table with a mysql table generator but it seems to generate the same query.
CodePudding user response:
you must define a size for NVARCHAR
like NVARCHAR(255)
CREATE TABLE `Personal_Medico` (
`ID_Personal_Medico` INT,
`Nombre_Personal_Medico` NVARCHAR(255),
`Apellido_Personal_Medico` NVARCHAR(255),
`Cedula_Personal_Medico` TINYINT,
PRIMARY KEY (`ID_Personal_Medico`),
KEY `UNIQUE` (`Cedula_Personal_Medico`)
);
i suspect your code is not for MYSQL
see it runs in MySQL with VARCHAR
https://www.db-fiddle.com/f/nJMBURY4NcXG2hgYLFhbBf/0