You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在TablePlus中创建关联users表的posts表时出现SQL语法错误

创建关联posts表的MySQL语法错误解决

报错内容

Query 1 ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VISIBLE,
CONSTRAINT uid
FOREIGN KEY (uid)
REFERENCES users (id' at line 9

原执行SQL

CREATE TABLE `posts` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255) NOT NULL,
  `desc` VARCHAR(1000) NOT NULL,
  `img` VARCHAR(255) NOT NULL,
  `date` VARCHAR(255) NOT NULL,
  `uid` INT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `uid_idx` (`uid` ASC) VISIBLE,
  CONSTRAINT `uid`
    FOREIGN KEY (`uid`)
    REFERENCES `users` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
);

问题根源

VISIBLE是MySQL 8.0及以上版本才引入的索引可见性控制关键字,你的MySQL版本低于8.0的话,数据库不识别这个语法,直接触发报错。

修复方法

删掉索引定义行里的VISIBLE即可,修改后的SQL如下:

CREATE TABLE `posts` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255) NOT NULL,
  `desc` VARCHAR(1000) NOT NULL,
  `img` VARCHAR(255) NOT NULL,
  `date` VARCHAR(255) NOT NULL,
  `uid` INT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `uid_idx` (`uid` ASC),
  CONSTRAINT `uid`
    FOREIGN KEY (`uid`)
    REFERENCES `users` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
);

如果确认自己使用的是MySQL 8.0+版本,检查下VISIBLE拼写是否有误,或者核实数据库连接的版本是否真的为8.0及以上。


内容的提问来源于stack exchange,提问作者mxcdh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 23:51:19