mysql數據庫外鍵的使用,隨主表同時更新或刪除


現在有一個圖書表,記載了圖書信息,圖書id為nh_id,

要求有一個圖書章節表,按章節記載圖書的具體信息,外鍵nh_id對應圖書表的nh_id,同時要求如果圖書表id改變,對應的章節表的外鍵也改變,如果圖書刪除,該書對應的章節也一並刪除

添加外鍵約束為

CONSTRAINT `nh_chapter-nh` FOREIGN KEY (`nh_id`) REFERENCES `nh` (`nh_id`) ON DELETE CASCADE ON UPDATE CASCADE

其中

CONSTRAINT `nh_chapter-nh` FOREIGN KEY (`nh_id`) REFERENCES `nh` (`nh_id`)

為建立外鍵

 

 

ON DELETE CASCADE ON UPDATE CASCADE

為一並刪除或更新

 

 

完整參考

CREATE TABLE `nh` (
  `nh_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '小說編號',
  `type` tinyint(2) unsigned NOT NULL COMMENT '類型',
  `sex` tinyint(1) unsigned NOT NULL COMMENT '性別[1男2女]',
  `name` varchar(100) NOT NULL COMMENT '名稱',
  `intro` varchar(1500) NOT NULL COMMENT '簡介',
  `words` varchar(10) NOT NULL COMMENT '字數',
  `author` varchar(30) NOT NULL COMMENT '作者',PRIMARY KEY (`nh_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10613 DEFAULT CHARSET=utf8mb4 COMMENT='小說表';


CREATE TABLE `nh_chapter` (
  `chapter_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '章節編號',
  `index` int(10) unsigned NOT NULL COMMENT '章節編號',
  `nh_id` int(10) unsigned NOT NULL COMMENT '小說編號',
  `title` varchar(100) NOT NULL COMMENT '標題',
  `total` int(10) unsigned NOT NULL COMMENT '章節字數',
  `content` mediumtext NOT NULL COMMENT '章節內容',
  PRIMARY KEY (`chapter_id`),KEY `nh_id` (`nh_id`),
  CONSTRAINT `nh_chapter-nh` FOREIGN KEY (`nh_id`) REFERENCES `nh` (`nh_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=244808 DEFAULT CHARSET=utf8mb4 COMMENT='小說章節表';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM