2017-07-08 20 views
0

私のサーバのデータを含めることのUbuntuをENGINEキーワードが必要です - nginxの - MySQLの外部キーを作成すると、.. MySQLの文で

私はwp_posts表に外部キーを使用してWordPressのデータベースにテーブルを作成する必要があります..しかし、私は気づきました新しいテーブルに外部キーを作成するにはENGINEキーワードをに作成する必要があります。ステートメントを作成すると、ENGINEキーワードが含まれていないと外部キーを作成できない理由がわかりません。

もちろん私はクライアントのためにプログラム的にこの文が必要なので、ENGINE = 'USER DB ENGINE'を含めることはできません。だからとにかくデフォルトのデータベースエンジンを使用していますか?

P.S.私はENGINEキーワードを含めるべきです。

+0

私はMySQLの専門家ではないことを理解して下さる前にコメントを書き留めてもいいですか?私は、レートを得るために助けを得るために質問をします –

答えて

0

MySQLは特定のデータベースエンジンに対してのみ外部キーをサポートしています。 2が最も一般的に使用され、インストール中に存在することは、次のとおりです。

  • InnoDBの
  • InnoDBは外部キー制約をサポートしています

    • のMyISAM、MyISAMテーブルにはありません。 MyISAMに外部キーの制約を実装するためのリストはどこかにありますが、過去15年(プラスマイナス数)では誰もそれを得ていませんでした。

    +0

    あなたの助けをありがとう、しかし私のデータベースエンジンMYISAM、私は新しいテーブルを作成しましたが、ENGINEキーワードを書きませんでしたが、失敗しましたが、いくつかのテストの後にENGINE = MYISAMをcreate table文に追加し、外部キーが正常に追加されました。 –

    +1

    "何でもする。 [*](MyISAMなどの外部キーをサポートしていないストレージエンジンの場合、MySQLサーバは外部キーの仕様を解析して無視します)。*](https://dev.mysql.com/doc/refman/5.7/en/create -table-foreign-keys.html) –