2017-01-17 137 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