mysql - MySQL中定义外键的方式有哪些

标签 mysql database schema

我看到了两种完成方式:

方法一:

CREATE TABLE IF NOT EXISTS `sample` (  
  `sample_id` tinyint(2) NOT NULL AUTO_INCREMENT,  
  `description` varchar(32) NOT NULL,  
  `parent_id` int(10) NOT NULL,  
  `created` datetime NOT NULL,  
  PRIMARY KEY (`sample_id`)  
) ENGINE=InnoDB;  

ALTER TABLE sample ADD CONSTRAINT parent_id FOREIGN KEY (parent_id) REFERENCES parent_tbl(parent_id);  

方法二:

CREATE TABLE IF NOT EXISTS `sample` (  
  `sample_id` tinyint(2) NOT NULL AUTO_INCREMENT,  
  `description` varchar(32) NOT NULL,  
  `parent_id` int(10) NOT NULL,  
  `created` datetime NOT NULL,  
  PRIMARY KEY (`sample_id`),  
  Foreign Key (parent_id) references parent_tbl(parent_id)  
) ENGINE=InnoDB;  

哪种方式更好或何时使用一种方式优于另一种方式?

最佳答案

如果您需要向现有表添加外键,请使用方法 1,如果您要从头开始创建架构,请使用方法 2

没有最好的方法,他们做同样的事情。

关于mysql - MySQL中定义外键的方式有哪些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4505786/

相关文章:

php - 将 mySQL 数据库的日志文件日期时间格式从 12 小时制批量转换为 24 小时制

mysql - 如何获得 bool 结果 SQL 查询

php - 语法错误或访问冲突 : 1064

php - 在 php 和 mysql 中从数据库组织问题和答案

php - 在 codeigniter PHP 中使用数组检查索引键

mysql - 使用MYSQL防止用户多次加入调查

spring - 在 Hibernate 3.3.1ga 和 HSQLDB 中使用带有模式名称的 @Table

php - 配方/成分/测量/数量的数据库模式

SQL - 按范围计数

arrays - MongodB $从数组中只拉一个元素