2

次のように、mysql データベースに外部キーを設定しました。

ALTER TABLE `gameplayers` ADD CONSTRAINT `FK_GAMENUMBER` FOREIGN KEY (`GameNumber`) REFERENCES `games`(`GameNumber`) ON UPDATE CASCADE ON DELETE CASCADE;

ただし、ON UPDATE と ON DELETE がもう必要かどうかはわかりません。

phpAdmin に移動し、[Structure] タブの [Index] セクションにある編集鉛筆アイコンをクリックすると、次のようになります。

警告: (「PRIMARY」は主キーの名前である必要があります!)

変更は手動で行う必要がありますか? つまり、鉛筆アイコンは機能しません。

また、外部キーは、インデックスと同様に、mysql 検索に同じ速度ボーナス効果をもたらしますか?

4

1 に答える 1

8

外部キーにはインデックスが必要であるため、効果的に、外部キー制約はインデックスを作成してインデックスを作成し、通常のインデックスと同じようにクエリを解決するために使用できます。

使用しているphpMyAdminのバージョンがわかりません。最新バージョンでは外部キーが含まれていると思いますが、外部キーインデックスがリストされていないようで、主キーは探しているものではありません。ただし、プレーンSQLを使用してキーを変更できます。

ALTER TABLE `gameplayers` DROP FOREIGN KEY FK_GAMENUMBER,
    ADD CONSTRAINT `FK_GAMENUMBER` FOREIGN KEY (`GameNumber`) REFERENCES `games`(`GameNumber`) ON UPDATE NO ACTION ON DELETE NO ACTION;
于 2012-04-30T21:37:32.763 に答える