Mysql外鍵用法分析
作者:佚名
Mysql外鍵用于保證數(shù)據(jù)的完整性,使表之間建立聯(lián)系。下文對Mysql外鍵的使用作了深入的分析,希望對您學(xué)習(xí)Mysql外鍵方面能有所啟迪。
Mysql外鍵用法是Mysql數(shù)據(jù)庫中的基礎(chǔ)知識,下面就為您詳細(xì)將介紹Mysql外鍵用法,如果您對此方面有興趣的話,不妨一看。
昨晚用Mysql建外鍵約束,始終沒有成功,今天找到這個(gè),原來只有InnoDB類型的表才可以使用Mysql外鍵.
只有InnoDB類型的表才可以使用外鍵
- CREATE TABLE person (
- id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
- name CHAR(60) NOT NULL,
- PRIMARY KEY (id)
- )type=innoDB;
- CREATE TABLE shirt (
- id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
- style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
- color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
- owner SMALLINT UNSIGNED NOT NULL,
- FOREIGN KEY (owner) REFERENCES PERSON(id)
- ON DELETE CASCADE
- ON UPDATE CASCADE,
- PRIMARY KEY (id)
- )type=innoDB;
然后打開MySQL Administrator終于看到 FOREIGN KEY有東西了,嘗試手工刪除后再用MySQL Administrator建立,成功。
- INSERT INTO person VALUES (NULL, 'Antonio Paz');
- SELECT @last := LAST_INSERT_ID();
- INSERT INTO shirt VALUES
- (NULL, 'polo', 'blue', @last),
- (NULL, 'dress', 'white', @last),
- (NULL, 't-shirt', 'blue', @last);
- INSERT INTO person VALUES (NULL, 'Lilliana Angelovska');
- SELECT @last := LAST_INSERT_ID();
- INSERT INTO shirt VALUES
- (NULL, 'dress', 'orange', @last),
- (NULL, 'polo', 'red', @last),
- (NULL, 'dress', 'blue', @last),
- (NULL, 't-shirt', 'white', @last);
- SELECT * FROM person;
- SELECT * FROM shirt;
測試UPDATE關(guān)聯(lián)
- UPDATE PERSON SET id=3 WHERE id=1;
- SELECT * FROM shirt;
測試DELETE關(guān)鍵
- DELETE FROM PERSON WHERE id=3;
- SELECT * FROM shirt;
【編輯推薦】
責(zé)任編輯:段燃
來源:
互聯(lián)網(wǎng)