簡體   English   中英

MySQL創建一對一關系

[英]Mysql create one-to-one relation

我有2張桌子

 CREATE TABLE `persons` (
 `id` int(6) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 `name`
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
CREATE TABLE `person_rank` (
 `id` int(6) NOT NULL,
 `wins` int DEFAULT 0,
 `losts` int DEFAULT 0,
 `rank` int DEFAULT 1000
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

如果需要,我應該如何創建這些表:當將一個人員id添加到persons該人員將被自動添加到person_rankrank=1000 wins=0 person_rank losts=0

人員上創建AFTER INSERT觸發器

DELIMITER ;;
CREATE TRIGGER `persons_ai` AFTER INSERT ON `persons` FOR EACH ROW
    INSERT INTO `person_rank` (`id`, `wins`, `losts`, `rank`) VALUES (new.id, 0, 0, 1000);;
DELIMITER ;

我會按照MarcB所說的做,只運行兩次插入。

與MarcB所說的一樣,從person_rank.id到person.id創建一個外鍵,該外鍵在刪除和更新時級聯。 這將使它們保持同步。 如果您更改人員編號,它將更新person_rank。 如果您刪除persons中的行,則會刪除persons_rank中的行。

最后,由於id是1到1,因此您也希望id在person_rank中作為主鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM