版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_34122324/article/details/85173367
数据库MySQL之如何使用外键约束?
文章目录
1. 外键约束的使用要求:
- 父表和子表必须使用相同的存储引擎,不能使用临时表
- 数据存储引擎必须为INNODB类型
- 外键列和参照列必须具有相似的数据类型。其中数字的长度或者是否有符号位必须相同,字符的长度则可以不同
- 外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL则自动创建索引
外键列创建在子表中,参照列创建在父表中
2. 测试:
在 MY.ini 文件中编辑默认的存储引擎
default-storage-engine=INNODB;
显示创建表的语句
SHOW CREATE TABLE table_name;
查看表是否有索引
SHOW INDEXS FROM table_name;
以网格查看表是否有索引
SHOW INDEXS FROM table_name\G;
Eg:
CREATE TABLE table_name1(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL
)
CREATE TABLE table_name2(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL,
pid SMALLINT UNSIGNED,
FOREIGN KEY (pid) REFERENCES table_name1(id) /* 外键 pid 参照 table_name1中的 id 字段 */