mysql根据外键删除数据
时间: 2023-10-12 07:19:41 浏览: 114
在 MySQL 中,你可以使用 ON DELETE CASCADE 选项在删除一个记录时自动删除与它相关的记录,这对于处理外键约束非常有用。下面是一些示例代码:
首先,我们需要创建两个表,一个包含主键,另一个包含一个外键引用该主键:
```
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
amount DECIMAL(10, 2),
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
```
在这个例子中,orders 表的 user_id 列包含一个外键,它引用了 users 表中的 id 列。
接下来,我们将插入一些数据:
```
INSERT INTO users (id, name) VALUES (1, 'Alice');
INSERT INTO orders (id, user_id, amount) VALUES (1, 1, 10.99);
INSERT INTO orders (id, user_id, amount) VALUES (2, 1, 20.99);
```
现在,当我们从 users 表中删除一个记录时,与之相关的 orders 记录将被自动删除:
```
DELETE FROM users WHERE id = 1;
```
在这个例子中,当我们从 users 表中删除 id 为 1 的记录时,与之相关的 orders 表中的所有记录将被自动删除,因为我们在 orders 表上使用了 ON DELETE CASCADE 选项。
注意,如果 orders 表中包含与 users 表中的 id 列不匹配的 user_id 值,那么当我们从 users 表中删除记录时,这些不匹配的记录将不会被删除。
阅读全文