MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのforeign_key_checksはデータベース全体に影響しますか?


external_key_checksはセッションベースです。これで、それらはスコープ、つまりローカルまたはグローバル用であると言えます。これは、ローカルまたはグローバルのデモの例です。どちらもスコープであり、これをセッション用に設定できます。

スコープを設定しましょう-

mysql> set foreign_key_checks = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global foreign_key_checks = 0;
Query OK, 0 rows affected (0.05 sec)

Foreign_key_checks変数は、サーバーシステム変数です。詳細は次のとおりです-

プロパティ
システム変数 external_key_checks
スコープ グローバル、セッション
動的 はい
タイプ ブール値
デフォルト値 オン

foreign_key_checksを0に設定

これはデータ定義ステートメントに影響します。DROPSCHEMAは、スキーマ外のテーブルによって参照される外部キーを持つテーブルが含まれている場合でもスキーマをドロップし、DROP TABLEは、他のテーブルによって参照される外部キーを持つテーブルをドロップします。

>

foreign_key_checksを1に設定

既存のテーブルデータのスキャンはトリガーされません。したがって、foreign_key_checks =0の間にテーブルに追加された行は、整合性が検証されません。


  1. MySQLはデータベースファイルをどこに保存しますか?

    MySQLがデータベースファイルを保存する場所を知るには、変数@@datadirを使用できます。クエリは次のとおりです- mysql> select @@datadir; 以下は、パスを表示する出力です- +---------------------------------------------+ | @@datadir | +---------------------------------------------+ | C:\ProgramData\MySQL\MySQL Server 8.0\Data\ | +

  2. データベース内のテーブルの数を表示するためのMySQLクエリとは何ですか?

    たとえば、ここではWEBデータベースを使用しています。データベースWEBでテーブルの数を見つける必要があります。これには、MySQLのINFORMATION_SCHEMA.TABLESを使用します。 以下は、テーブルの数を表示するためのクエリです- mysql> select count(table_name) as TotalNumberOfTablesInWebDatabase    -> from information_schema.tables    -> where table_schema='web';