2017-01-17 80 views
0

好的,所以我想讓表2以某種方式與表1相鏈接。MySQL表索引

這是表1

CREATE TABLE `table_1` (
    `ID` int(10) NOT NULL, 
    `Name` int(11) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

ALTER TABLE `table_1` 
    ADD PRIMARY KEY (`ID`); 

ALTER TABLE `table_1` 
    MODIFY `ID` int(10) NOT NULL AUTO_INCREMENT; 

代碼這是代碼爲表2

CREATE TABLE `table_2` (
    `ID` int(11) NOT NULL, 
    `user_id` int(10) NOT NULL, 
    `hash` int(10) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

ALTER TABLE `table_2` 
    ADD PRIMARY KEY (`ID`), 
    ADD KEY `user_id` (`user_id`); 

ALTER TABLE `table_2` 
    MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT; 

現在我想從表1中的user_id從表2鏈接ID,我該怎麼做?

因此,舉例來說,當我打開表2我想看看裏面USER_ID從表1的等.. ID

+0

修改您的標題,因爲它沒有任何關係用PHP來做... – War10ck

+0

我相信你正在尋找外鍵創建過程的'ON UPDATE CASCADE'部分。但是請注意,當「表1」更新時,它不會自動插入「表2」。相反,如果表1中相應的用戶標識被修改,它將改變'表2'中的'user_id' ... – War10ck

回答

1

試試這個:

ALTER TABLE table_2 
ADD FOREIGN KEY (user_id) REFERENCES table_1 (ID); 
+0

Aha有趣,所以當執行插入查詢時,是否需要指定ID或將它檢索它自動? –

+0

@TomislavTomiNikolic這取決於您可以從'表1'中手動檢索'ID'並執行第二個查詢以插入到'表2'中,或者您可以查看_MySQL_ [triggers](http://dev.mysql.com /doc/refman/5.7/en/trigger-syntax.html)來查看如何在db內部執行此操作。 – War10ck

+0

您必須在插入到table_2中時指定user_id。 – Nimish