欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;