[英]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_rank
, rank=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.