Mysql中的外键索引

  • 外键索引(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;

猜你喜欢

转载自blog.csdn.net/Bala_Manaoano/article/details/82596759