MySQL創(chuàng)建關(guān)聯(lián)表是非;A(chǔ)的知識(shí),下面就為您舉例說明MySQL創(chuàng)建關(guān)聯(lián)表的方法,如果您對(duì)MySQL創(chuàng)建關(guān)聯(lián)表方面感興趣的話,不妨一看。
MySQL創(chuàng)建關(guān)聯(lián)表可以理解為是兩個(gè)表之間有個(gè)外鍵關(guān)系,但這兩個(gè)表必須滿足三個(gè)條件
1.兩個(gè)表必須是InnoDB數(shù)據(jù)引擎
2.使用在外鍵關(guān)系的域必須為索引型(Index)
3.使用在外鍵關(guān)系的域必須與數(shù)據(jù)類型相似
下面分別建兩個(gè)表來說明一下:
Create TABLE IF NOT EXISTS `books` (
`book_id` smallint(6) NOT NULL auto_increment COMMENT '書籍編號(hào)',
`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 '借閱時(shí)間',
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 '成員編號(hào)',
`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表,創(chuàng)建他們的關(guān)聯(lián),我用了books表的book_borrower字段 創(chuàng)建表時(shí)索引并選擇InnoDB為表引擎。而parts表即part_name字段為外鍵,關(guān)聯(lián)到books表的book_borrower字段.注意兩 個(gè)字段分別是char和varchar都是字符串類型。on delete cascade意思為當(dāng)books表有相關(guān)記錄刪除時(shí),那parts表也會(huì)跟著刪除相關(guān)聯(lián)的記錄. 理論上parts表的part_name字段也應(yīng)該要?jiǎng)?chuàng)建索引才對(duì),但實(shí)驗(yàn)證創(chuàng)建關(guān)聯(lián)后自動(dòng)索引了。 本文出自:億恩科技【1tcdy.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|