2017-01-17 4 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; 

は今、私は表2からのuser_idで表1からIDをリンクするテーブルのコードで、どうすればいいのですか?

だから例えば私は

+0

があなたのタイトルを変更しますPHPでやる... – War10ck

+0

私はあなたが外部キー作成プロセスの 'ON UPDATE CASCADE'部分を探していると思います。ただし、これは 'Table 1'が更新されたときに' Table 2'に自動挿入されません。代わりに 'Table 1'の対応するユーザIDが変更された場合、' Table 2'の 'user_id'を変更します... – War10ck

答えて

1

はこれを試してみてください..私は表1などからUSER_ID内のIDを表示したい表2を開くとき:それが何もなかったよう

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

面白いので、挿入クエリを実行するときにIDを指定する必要がありますか?それは自動的に? –

+0

@TomislavTomiNikolicそれは、あなたが手動で 'テーブル1 'から' ID'を取り出し、 'テーブル2'に挿入するために2番目のクエリを実行するか、_MySQL_ [triggers](http://dev.mysql.com /doc/refman/5.7/en/trigger-syntax.html)を参照して、db内部でこれを行う方法を見てください。 – War10ck

+0

table_2に挿入する際にuser_idを指定する必要があります。 – Nimish

関連する問題