Mysql中的外键索引
程序员文章站
2022-05-31 23:47:13
...
- 外键索引(foreign key)
-
作用:让当前表的字段值在另一个表的范围内选择。
注意规则:
1.主表的被参考字段和从表的参考字段的数据类型应该相同
- 2.主表中的参考字段必须是KEY的一种,通常是主键。
mysql> create table tab1(
-> id int,
-> name char(20)
-> );
Query OK, 0 rows affected (0.21 sec)
mysql> alter table tab1 add primary key(id);
Query OK, 0 rows affected (0.39 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> create table tab2(
-> id1 int,
-> name char(20),
-> foreign key(id1) references
-> tab1(id)
-> on delete cascade
-> on update cascade #cascade是一种级联动作的类型
-> );
Query OK, 0 rows affected (0.39 sec)
外键索引失败的一般原因:
1.主表忘记给定主键
2.被参考字段与参考字段的数据类型不一致
3.主表与从表的存储引擎不一致
show create table table_name
使用此语句查看两表的存储引擎:
| tab1 | CREATE TABLE `tab1` (
`id` int(11) NOT NULL,
`name` char(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 | #关注ENGINE后面的,若不同 更改相同。
修改语句如下:
alter table tab1 engine=innodb;
上一篇: Oracle数据库的基础使用
下一篇: oracle中分组排序并取最大值