MySQL ERROR 1064报错:创建含外键的ordini表失败求助
MySQL ERROR 1064 语法错误修复:外键定义缺失列名
你的SQL语句触发ERROR 1064的核心原因是外键约束的列定义为空,MySQL要求必须明确指定当前表的外键列,以及引用表对应的主键列。
错误点拆解
FOREIGN KEY ()括号内未填写当前表的外键列(id_cliente/id_prodotto)REFERENCESrest_db.cliente()括号内未填写引用表的主键列(通常cliente表的主键是id_cliente,prodotto表主键是id_prodotto)
修正后的SQL语句
CREATE TABLE `rest_db`.`ordini` ( `id_ordini` INT NOT NULL, `id_cliente` INT NULL, `id_prodotto` INT NULL, PRIMARY KEY (`id_ordini`), -- 客户外键约束:绑定当前表id_cliente到cliente表的主键id_cliente CONSTRAINT `fk_ordini_cliente` FOREIGN KEY (`id_cliente`) REFERENCES `rest_db`.`cliente` (`id_cliente`) ON DELETE RESTRICT ON UPDATE CASCADE, -- 产品外键约束:绑定当前表id_prodotto到prodotto表的主键id_prodotto CONSTRAINT `fk_ordini_prodotto` FOREIGN KEY (`id_prodotto`) REFERENCES `rest_db`.`prodotto` (`id_prodotto`) ON DELETE RESTRICT ON UPDATE CASCADE );
额外提示
- 如果
cliente或prodotto表的主键列名不是id_cliente/id_prodotto,请替换为对应表实际的主键列名。 - 约束名建议使用
fk_表名_关联表名格式,避免和列名重复,便于后续维护。
内容的提问来源于stack exchange,提问作者giorgia beavers
相关产品推荐
相关产品推荐

