在mysql中,建立外键关联,关联表必须是使用innodb,将engine修改为innodb即可。

存储引擎是什么?

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。

关于数据库其它几个引擎的区别如下:

mysql> show engines;

+------------+---------+------------------------------------------------------------+

| Engine     | Support | Comment                                                    |

+------------+---------+------------------------------------------------------------+

| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     |

| HEAP       | YES     | Alias for MEMORY                                           |

| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  |

| MERGE      | YES     | Collection of identical MyISAM tables                      |

| MRG_MYISAM | YES     | Alias for MERGE                                            |

| ISAM       | NO      | Obsolete storage engine, now replaced by MyISAM            |

| MRG_ISAM   | NO      | Obsolete storage engine, now replaced by MERGE             |

| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys |

| INNOBASE   | YES     | Alias for INNODB                                           |

| BDB        | NO      | Supports transactions and page-level locking               |

| BERKELEYDB | NO      | Alias for BDB                                              |

| NDBCLUSTER | NO      | Clustered, fault-tolerant, memory-based tables             |

| NDB        | NO      | Alias for NDBCLUSTER                                       |

| EXAMPLE    | NO      | Example storage engine                                     |

| ARCHIVE    | NO      | Archive storage engine                                     |

| CSV        | NO      | CSV storage engine                                         |

+------------+---------+------------------------------------------------------------+

16 rows in set (0.01 sec)

 

Logo

更多推荐