程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 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定義外鍵的方法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved