每当我 运行 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
所以基本上我试图从 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