1

NaviCat (MySQL アプリケーション) で外部キーを作成しましたが、作成した瞬間に外部キー リストから消え、新しいインデックスが追加されます。それは何かがうまくいかなかったことを意味しますか、それともそれが起こるのは普通ですか?

information_schema を使用してみましたが、列がすでに外部キーであるかどうかを確認するにはどうすればよいですか? しかし、それはUnknown table 'REFERENTIAL_CONSTRAINTS' in information_schema. クエリが MsSQL 用で、MySQL とは異なる可能性はありますか?

4

2 に答える 2

4
  1. おそらく外部キーを作成しているテーブルは MyISAM です。[テーブル デザイン] ビューに移動し、[オプション] タブに移動して、テーブル エンジンを InnoDB に変更します。

  2. http://kevin.vanzonneveld.net/techblog/article/convert_all_tables_to_innodb_in_one_go/の手順に従って、すべてのテーブルを InnoDB に変更できます。

  3. http://dev.mysql.com/doc/refman/5.5/en/innodb-default-seから MySQL 構成ファイル (通常は my.cnf) の [mysqld] セクションに default-storage-engine=innodb を追加します。 html

結局、MySQL 5.5 から InnoDB がデフォルトのストレージ エンジンであることに問題はありません。

于 2012-03-05T09:48:40.023 に答える
2

実行する

SHOW CREATE TABLE myTable;

次に、

ENGINE = InnoDB

これが true の場合、外部キーを使用できます。次のようなものが含まれているかどうかを確認します。

FOREIGN KEY (customer_id)  REFERENCES customer(id)

それが役立つことを願っています!

于 2012-03-05T09:52:08.880 に答える