|
|
|
|
移动端

Mysql外键用法分析

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

作者:佚名来源:互联网|2010-11-22 10:08

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

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定义外键的方法

【责任编辑:段燃 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管员必读-网络管理(第2版)

本书是对《网管员必读—网络管理》第1版的全面重写,因为书中所涉及的两个主要网络操作系统都已升级。本书介绍的是Windows Server 2003 R2...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊