创建 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";

问题似乎是没有反引号和缺少逗号的位置。

SQL FIDDLE

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";