创建 Table 时收到此错误消息 "ERROR 1064 (42000)"
Getting this error message "ERROR 1064 (42000)" when creating Table
create table `Salary`(
`sa_id` int unsigned,
`es_id` int unsigned,
`po_id` int unsigned,
`value` int (10),
`lose` int (10),
`days` int (10),
`lose_note` varchar (50),
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`)
REFERENCES Position(`po_id`)
CONSTRAINT es_sa FOREIGN KEY (`es_id`)
REFERENCES Employee_stat(`es_id`)
)ENGINE=InnoDB CHARSET=utf8 COMMENT="Table";
您在 REFERENCES Position(po_id)
后少了一个逗号
第一个 REFERENCES 后缺少逗号。您的查询将是:
CREATE TABLE `Salary`(
`sa_id` int unsigned,
`es_id` int unsigned,
`po_id` int unsigned,
`value` int (10),
`lose` int (10),
`days` int (10),
`lose_note` varchar (50),
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`)
REFERENCES Position(`po_id`), -- missed the comma here
CONSTRAINT es_sa FOREIGN KEY (`es_id`)
REFERENCES Employee_stat(`es_id`)
)ENGINE=InnoDB CHARSET=utf8 COMMENT="Table";
缺少一个 ,
运算符,如下所示
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`) <-- Here
将您的 CREATE TABLE
语句更改为
create table `Salary`(
`sa_id` int unsigned,
`es_id` int unsigned,
`po_id` int unsigned,
`value` int (10),
`lose` int (10),
`days` int (10),
`lose_note` varchar (50),
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`),
REFERENCES Position(`po_id`),
CONSTRAINT es_sa FOREIGN KEY (`es_id`),
REFERENCES Employee_stat(`es_id`)
)ENGINE=InnoDB CHARSET=utf8 COMMENT="Table";
问题似乎是没有反引号和缺少逗号的位置。
create table `Salary`(
`sa_id` int unsigned,
`es_id` int unsigned,
`po_id` int unsigned,
`value` int (10),
`lose` int (10),
`days` int (10),
`lose_note` varchar (50),
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`)
REFERENCES `Position`(`po_id`), --Backticks & comma
CONSTRAINT es_sa FOREIGN KEY (`es_id`)
REFERENCES Employee_stat(`es_id`)
)ENGINE=InnoDB CHARSET=utf8 COMMENT="Table";
create table `Salary`(
`sa_id` int unsigned,
`es_id` int unsigned,
`po_id` int unsigned,
`value` int (10),
`lose` int (10),
`days` int (10),
`lose_note` varchar (50),
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`)
REFERENCES Position(`po_id`)
CONSTRAINT es_sa FOREIGN KEY (`es_id`)
REFERENCES Employee_stat(`es_id`)
)ENGINE=InnoDB CHARSET=utf8 COMMENT="Table";
您在 REFERENCES Position(po_id)
第一个 REFERENCES 后缺少逗号。您的查询将是:
CREATE TABLE `Salary`(
`sa_id` int unsigned,
`es_id` int unsigned,
`po_id` int unsigned,
`value` int (10),
`lose` int (10),
`days` int (10),
`lose_note` varchar (50),
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`)
REFERENCES Position(`po_id`), -- missed the comma here
CONSTRAINT es_sa FOREIGN KEY (`es_id`)
REFERENCES Employee_stat(`es_id`)
)ENGINE=InnoDB CHARSET=utf8 COMMENT="Table";
缺少一个 ,
运算符,如下所示
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`) <-- Here
将您的 CREATE TABLE
语句更改为
create table `Salary`(
`sa_id` int unsigned,
`es_id` int unsigned,
`po_id` int unsigned,
`value` int (10),
`lose` int (10),
`days` int (10),
`lose_note` varchar (50),
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`),
REFERENCES Position(`po_id`),
CONSTRAINT es_sa FOREIGN KEY (`es_id`),
REFERENCES Employee_stat(`es_id`)
)ENGINE=InnoDB CHARSET=utf8 COMMENT="Table";
问题似乎是没有反引号和缺少逗号的位置。
create table `Salary`(
`sa_id` int unsigned,
`es_id` int unsigned,
`po_id` int unsigned,
`value` int (10),
`lose` int (10),
`days` int (10),
`lose_note` varchar (50),
PRIMARY KEY(`sa_id`),
CONSTRAINT po_sa FOREIGN KEY (`po_id`)
REFERENCES `Position`(`po_id`), --Backticks & comma
CONSTRAINT es_sa FOREIGN KEY (`es_id`)
REFERENCES Employee_stat(`es_id`)
)ENGINE=InnoDB CHARSET=utf8 COMMENT="Table";