mysql - MySQL 未执行外键约束。编辑:用“其他”替换“模式”
问题描述
我正在创建 2 个表、客户和订单。目标是在订单客户列中创建一个约束,以仅在客户存在时才允许插入。
这是我正在尝试的代码
CREATE TABLE other.customers (
customers_id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(45) NULL,
PRIMARY KEY (customers_id)
);
接下来我正在创建订单表
CREATE TABLE other.orders (
orders_id INT NOT NULL,
customer INT NOT NULL,
PRIMARY KEY (orders_id),
INDEX customers_idx (customer ASC),
CONSTRAINT customers FOREIGN KEY (customer)
REFERENCES other.customers (customers_id)
ON DELETE CASCADE ON UPDATE CASCADE
);
两次我都没有出错。但他显然不起作用,我看不到约束。所以我试图改变订单表
ALTER TABLE other.orders ENGINE = InnoDB ;
ALTER TABLE other.orders ADD CONSTRAINT customer
FOREIGN KEY (customer) REFERENCES other.customers (customers_id)
ON DELETE CASCADE ON UPDATE CASCADE;
但是这次我得到一个 SQL 错误:
操作失败:将 SQL 脚本应用到数据库时出错。ERROR 1215:无法添加外键约束
我可能遗漏了一些微不足道的东西,但就是不能指望它。
解决方案
推荐阅读
- javascript - element.getAttribute 不是函数
- mysql - MAMP & MyPHPAdmin 格式参数不正确
- sql - 使用 read.csv.sql,R 创建 SQL 文件时如何过滤双引号
- database - 如何在 select 语句中获取引用?
- sql - 找不到数据类型 - 错误仅在较大的脚本内发生
- routes - zf3 翻译路线 - 找不到翻译器
- javascript - 在没有 NodeJs 的客户端站点上使用带有 javascript 的 Swagger
- javascript - 将当前样式表保存到本地存储
- ffmpeg - FFMPEG Concat 音频在时间戳
- list - 在 Prolog 中的 List 中添加不重复的元素