Mysql外键用法分析

数据库 MySQL
Mysql外键用于保证数据的完整性,使表之间建立联系。下文对Mysql外键的使用作了深入的分析,希望对您学习Mysql外键方面能有所启迪。

Mysql外键用法是Mysql数据库中的基础知识,下面就为您详细将介绍Mysql外键用法,如果您对此方面有兴趣的话,不妨一看。

昨晚用Mysql建外键约束,始终没有成功,今天找到这个,原来只有InnoDB类型的表才可以使用Mysql外键.

只有InnoDB类型的表才可以使用外键

  1. CREATE TABLE person (   
  2. id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,   
  3. name CHAR(60) NOT NULL,   
  4. PRIMARY KEY (id)   
  5. )type=innoDB;   
  6.  
  7. CREATE TABLE shirt (   
  8. id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,   
  9. style ENUM('t-shirt', 'polo', 'dress') NOT NULL,   
  10. color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,   
  11. owner SMALLINT UNSIGNED NOT NULL,   
  12. FOREIGN KEY (owner) REFERENCES PERSON(id)   
  13. ON DELETE CASCADE   
  14. ON UPDATE CASCADE,   
  15. PRIMARY KEY (id)   
  16. )type=innoDB;   
  17.  

然后打开MySQL Administrator终于看到 FOREIGN KEY有东西了,尝试手工删除后再用MySQL Administrator建立,成功。

  1. INSERT INTO person VALUES (NULL, 'Antonio Paz');   
  2.  
  3. SELECT @last :LAST_INSERT_ID();   
  4.  
  5. INSERT INTO shirt VALUES   
  6. (NULL, 'polo', 'blue', @last),   
  7. (NULL, 'dress', 'white', @last),   
  8. (NULL, 't-shirt', 'blue', @last);   
  9.  
  10. INSERT INTO person VALUES (NULL, 'Lilliana Angelovska');   
  11.  
  12. SELECT @last :LAST_INSERT_ID();   
  13.  
  14. INSERT INTO shirt VALUES   
  15. (NULL, 'dress', 'orange', @last),   
  16. (NULL, 'polo', 'red', @last),   
  17. (NULL, 'dress', 'blue', @last),   
  18. (NULL, 't-shirt', 'white', @last);   
  19.  
  20. SELECT * FROM person;   
  21.  
  22. SELECT * FROM shirt;   
  23.  

测试UPDATE关联

  1. UPDATE PERSON SET id=3 WHERE id=1;   
  2. SELECT * FROM shirt;   

测试DELETE关键

  1. DELETE FROM PERSON WHERE id=3;   
  2. SELECT * FROM shirt;  

 

 

 

【编辑推荐】

解读MySQL数据库产品定价新策略

带您学习DB2字符集和MySql字符集

查看MySQL数据库表的命令介绍

基于Hash算法的Mysql分表处理

MySQL定义外键的方法

责任编辑:段燃 来源: 互联网
相关推荐

2010-11-22 09:59:32

MySQL外键设置

2010-10-09 09:55:41

MySQL外键

2010-10-09 10:04:48

MySQL定义外键

2011-05-12 14:33:37

MySQL外键

2010-11-22 09:43:07

MySQL定义外键

2010-05-11 18:46:46

MYSQL 外键

2022-06-26 06:32:28

MySQL数据库维护

2010-10-19 17:28:08

SQL SERVER外

2010-10-09 09:46:28

MySQL外键

2019-11-05 08:20:13

MySQL数据库外键

2010-06-17 17:50:31

SQL Server外

2010-10-09 10:29:29

MySQL外键

2010-05-11 19:11:13

MySQL外键

2010-01-05 09:24:42

MySQL外键约束

2011-09-01 10:56:34

2010-06-12 09:02:12

MySQL参照完整性

2010-10-09 09:23:16

MySQL外键

2010-11-22 10:18:43

MySQL外键

2011-08-01 16:31:29

MySQL数据库外键

2010-05-14 09:03:53

点赞
收藏

51CTO技术栈公众号