1. 程式人生 > >MySQL建立關聯表的方法

MySQL建立關聯表的方法

MySQL建立關聯表是非常基礎的知識,下面就為您舉例說明MySQL建立關聯表的方法,如果您對MySQL建立關聯表方面感興趣的話,不妨一看。

MySQL建立關聯表可以理解為是兩個表之間有個外來鍵關係,但這兩個表必須滿足三個條件
1.兩個表必須是InnoDB資料引擎
2.使用在外來鍵關係的域必須為索引型(Index)
3.使用在外來鍵關係的域必須與資料型別相似
下面分別建兩個表來說明一下:

Create TABLE IF NOT EXISTS `books` (   
  `book_id` smallint(6) NOT NULL auto_increment COMMENT '書籍編號',   
  `book_name` char(20) NOT NULL COMMENT '書名',   
  `book_pic` varchar(200) NOT NULL COMMENT '封面',   
  `book_author` char(20) NOT NULL COMMENT '作者',   
  `book_pub` char(40) NOT NULL COMMENT '出版社',   
  `book_sort` char(6) NOT NULL COMMENT '分類',   
  `book_owner` char(6) default NULL COMMENT '所有者',   
  `book_borrower` char(7) default NULL COMMENT '借閱者',   
  `book_borrower_time` date default NULL COMMENT '借閱時間',   
  PRIMARY KEY  (`book_id`),   
  INDEX (book_borrower))   
ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=5 ;  
 
Create TABLE IF NOT EXISTS `parts` (   
  `part_id` smallint(6) NOT NULL COMMENT '成員編號',   
  `part_name` varchar(6) NOT NULL COMMENT '成員名',   
  `part_mail` varchar(50) NOT NULL COMMENT '郵箱',   
  `part_pass` varchar(20) NOT NULL COMMENT '密碼',   
  PRIMARY KEY  (`part_id`),   
FOREIGN KEY(part_name) REFERENCES books(book_borrower) on delete cascade on update cascade)   
ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;  
 分析一下books表和parts表,建立他們的關聯,我用了books表的book_borrower欄位 建立表時索引並選擇InnoDB為表引擎。而parts表即part_name欄位為外來鍵,關聯到books表的book_borrower欄位.注意兩 個欄位分別是char和varchar都是字串型別。on delete cascade意思為當books表有相關記錄刪除時,那parts表也會跟著刪除相關聯的記錄. 理論上parts表的part_name欄位也應該要建立索引才對,但實驗證建立關聯後自動索引了。