MySQL Workbench外键命令REFERENCES报错「该位置无效,期望(」问询
报错原因
- MySQL 定义外键的语法要求
FOREIGN KEY后必须用括号包裹关联的本地字段名,现有代码省略了括号,不符合语法规则所以触发报错。
修正后的完整代码
USE my_database; CREATE TABLE bands ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE albums( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, release_year INT, band_id INT NOT NULL, PRIMARY KEY (id), -- 外键字段band_id需用括号包裹 FOREIGN KEY (band_id) REFERENCES bands(id) );
补充说明
- 你也可以主动给外键约束设置自定义名称,方便后续维护时定位约束,写法如下:
FOREIGN KEY fk_albums_band_id (band_id) REFERENCES bands(id) - 上述代码中的
fk_albums_band_id为自定义的外键约束名,不属于语法必填项,可根据需求选择是否添加。
内容的提问来源于stack exchange,提问作者Elohos
相关产品推荐
相关产品推荐

