【发布时间】:2020-04-09 09:51:14
【问题描述】:
运行以下 SQL 语句(按此顺序)会引发以下错误,我不知道出了什么问题,在 Google 上搜索了示例查询,对我来说似乎都是一样的。
在 MySQL Workbench 服务器上执行时它们运行良好,但在 MariaDb 上运行时却不行。
错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“CONSTRAINT
playeridFOREIGN KEY (playerid) REFERENCES st_player (id) ON DELET”附近使用正确的语法
SQL 语句:
CREATE TABLE IF NOT EXISTS `st_player` (
`id` VARCHAR(45) NOT NULL,
`playerName` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
);
CREATE TABLE IF NOT EXISTS `st_statistic` (
`criteria` VARCHAR(45) NOT NULL,
`subcriteria` VARCHAR(45) NOT NULL,
`playerid` VARCHAR(45) NOT NULL,
`displayname` VARCHAR(45) NULL,
`amount` INT NULL,
PRIMARY KEY (`criteria`, `subcriteria`, `playerid`),
INDEX `playerid_idx` (`playerid` ASC) VISIBLE,
CONSTRAINT `playerid`
FOREIGN KEY (`playerid`) REFERENCES `st_player` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION
);
【问题讨论】:
-
嗨!您使用的是什么版本的 MySQL 服务器?我认为
VISIBLE关键字仅适用于 8+ 版本。 -
在考虑发布之前,请阅读手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有和没有您的特定字符串/名称和站点:stackoverflow.com &标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。反映你的研究。请参阅How to Ask 和投票箭头鼠标悬停文本。
标签: mysql sql foreign-keys mariadb create-table