每当我 运行 MySQL 查询时,我都会收到语法错误

When ever I run MySQL query I get syntax error

所以基本上我试图从 lucidchart 的实体关系图中同时创建多个 tables,它生成 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`)
);

每当我 运行 查询时,我都会遇到语法错误,但我无法弄清楚在哪里。我曾尝试使用 mysql table 生成器重新创建一个 table,但它似乎生成了相同的查询。

您必须为 NVARCHAR 定义尺寸,例如 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`)
);

我怀疑你的代码不适合 MYSQL

看到它在 MySQL 和 VARCHAR 中运行 https://www.db-fiddle.com/f/nJMBURY4NcXG2hgYLFhbBf/0