1. 首页 > MySQL教程 > 正文

MySQL教程FG146-MySQL InnoDB外键支持

内容简介:本文主要介绍MySQL存储过程参数与返回值的相关知识,包括参数类型、使用方法和最佳实践等内容。风哥教程参考MySQL官方文档MySQL InnoDB、MySQL Server Administration。 01 更多视频教程www.fgedu.net.cn 02 学习交流加群风哥微信: itpux-com 03 学习交流加群风哥QQ113257174 04 风哥提示: 05更多学习教程公众号风哥教程itpux_com 06 from mysql视频:www.itpux.com

Part01-基础概念与理论知识

1.1 外键介绍

# 外键约束
1. 外键作用
– 保证数据完整性
– 维护表间关系
– 防止无效数据
– 级联操作

2. 外键类型
– CASCADE
– SET NULL
– RESTRICT
– NO ACTION

Part02-生产环境规划与建议

2.1 外键操作

# 外键操作示例
1. 创建带外键的表
CREATE TABLE orders_fk (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
order_no VARCHAR(32) NOT NULL,
user_id BIGINT UNSIGNED NOT NULL,
amount DECIMAL(10,2) NOT NULL,
created_at DATETIME NOT NULL,
PRIMARY KEY (id),
KEY idx_user_id (user_id),
CONSTRAINT fk_orders_user FOREIGN KEY (user_id)
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

输出示例:
Query OK, 0 rows affected (0.03 sec)

2. 插入数据
INSERT INTO orders_fk (order_no, user_id, amount, created_at)
VALUES (‘ORD202604040001’, 1, 100.00, NOW());

输出示例:
Query OK, 1 row affected (0.01 sec)

3. 测试级联删除
DELETE FROM users WHERE id = 1;

输出示例:
Query OK, 1 row affected (0.02 sec)

4. 验证级联删除
SELECT * FROM orders_fk WHERE user_id = 1;

输出示例:
Empty set (0.00 sec)

Part03-生产环境项目实施方案

3.1 外键维护

# 外键管理示例
1. 查看外键
SELECT
TABLE_NAME,
CONSTRAINT_NAME,
COLUMN_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = ‘test’
AND REFERENCED_TABLE_NAME IS NOT NULL;

输出示例:
+————+——————-+————-+———————-+————————+
| TABLE_NAME | CONSTRAINT_NAME | COLUMN_NAME | REFERENCED_TABLE_NAME| REFERENCED_COLUMN_NAME|
+————+——————-+————-+———————-+————————+
| orders_fk | fk_orders_user | user_id | users | id |
+————+——————-+————-+———————-+————————+
1 row in set (0.01 sec)

2. 删除外键
ALTER TABLE orders_fk DROP FOREIGN KEY fk_orders_user;

输出示例:
Query OK, 0 rows affected (0.02 sec)

Part04-生产案例与实战讲解

4.1 外键最佳实践

# 外键最佳实践
1. 设计原则
– 合理使用外键
– 选择合适的级联操作
– 创建必要索引
– 监控外键性能

2. 性能考虑
– 外键影响插入性能
– 外键影响删除性能
– 监控锁等待
– 优化外键查询

3. 维护建议
– 定期检查外键约束
– 监控外键性能
– 优化表结构
– 备份数据

GF-MySQL数据库培训文档系列

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息