-- 创建两张表 CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), age INT ); CREATE TABLE orders ( id INT PRIMARY KEY, user_id INT, product_name VARCHAR(50), FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE );
上述代码中,大家创建了两张表users和orders,其中orders表中的user_id字段是一个外键,它参考了users表中的id字段。并且,在外键定义中使用了ON DELETE CASCADE选项,这意味着如果用户从users表中被删除,那么所有引用了该用户的orders行也将被删除。
-- 插入一条用户记录和2条订单记录 INSERT INTO users(id, name, age) VALUES(1, '张三', 20); INSERT INTO orders(id, user_id, product_name) VALUES(1, 1, '苹果'); INSERT INTO orders(id, user_id, product_name) VALUES(2, 1, '橘子');
上述代码中,大家向users表中插入了一条记录,同时向orders表中插入了两条记录,这两条记录都是参考了users表中的id为1的行。
-- 删除用户 DELETE FROM users WHERE id = 1;
上述代码中,大家从users表中删除了用户id为1的行,由于orders表中的外键使用了ON DELETE CASCADE选项,所以orders表中user_id为1的两条记录也被删除了。
Cascade MySQL是MySQL数据库非常有用的概念,它能够确保多个表之间的数据完整性。通过在外键定义中使用ON DELETE CASCADE选项,可以使得多个表之间的数据同步变化,非常方便。