0

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.

4
  • can you provide any specific error message? Commented Apr 26, 2022 at 0:10
  • Sorry I thought I wrote it, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use Commented Apr 26, 2022 at 0:14
  • more specific I think that error message still follows a message 'check the manual that corresponds to your MySQL server version for the right syntax to use like server version for the right syntax to use near blah blah ' Commented Apr 26, 2022 at 0:16
  • All the NVARCHAR should be defined.. All of them. Commented Apr 26, 2022 at 0:18

1 Answer 1

1

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

Sign up to request clarification or add additional context in comments.

3 Comments

Its is, i've tried that but still get another error
you cant have 2 foreign keys the same

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.