答えて
あなたがあなたの質問にした方法を設定するとセッションベースです。
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
これによれば、FOREIGN_KEY_CHECKS
はスコープの "両方" です。
SET FOREIGN_KEY_CHECKS=0;
またはグローバル:
SET GLOBAL FOREIGN_KEY_CHECKS=0;
実際には、2つのforeign_key_checks
の変数があります:グローバル変数とローカル(セッションごと)の変数はこれはセッションに設定できることを意味します。接続時に、セッション変数はグローバル変数の値に初期化されます。
コマンドSET foreign_key_checks
は、セッション変数を変更します。
グローバル変数を変更するには、SET GLOBAL foreign_key_checks
またはSET @@global.foreign_key_checks
を使用します。
には、次のマニュアルの項を参照してください:あなたはGLOBALを設定しなかった場合は
http://dev.mysql.com/doc/refman/5.7/en/using-system-variables.html
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
各リクエストでforeign_key_checksを設定するのはコストがかかりますか?私はDBをアップグレードするためのスクリプトを持っており、アップグレード中に他の誰かがデフォルトで外部キーチェックを無効にすることはできません。だから私は何百万という質問をして、SETが重要かどうか疑問に思いましたか? – Aki
@Aki DBをアップグレードしているなら、他の人のアクセスをロックするほうが良いと言えます。少なくとも書くために。それ以外の場合は、あらゆる種類の同時アクセスの問題が予想されます。 – tishma
偉大な答えと区別。どのように動作するかの結果を理解することは重要です。これは、GLOBAL 'foreign_key_checks'を設定することができず、同じセッションで外部キー制約を無視することを期待することを意味します。非グローバル変数を設定する必要があります。 –
# will get you the current local (session based) state.
SHOW Variables WHERE Variable_name='foreign_key_checks';
を、唯一のあなたのセッションは影響を受けました。
MySQLクエリブラウザを使用している場合、SET FOREIGN_KEY_CHECKS=0;
はバージョン1.1.20には影響しません。しかし、MySQLのクエリブラウザ1.2.17でうまく動作します。
Ron氏が説明したように、ローカルとグローバルの2つの変数があります。ローカル変数は常に使用され、接続時にはグローバル変数と同じです。
SET FOREIGN_KEY_CHECKS=0;
SET GLOBAL FOREIGN_KEY_CHECKS=0;
SHOW Variables WHERE Variable_name='foreign_key_checks'; # always shows local variable
GLOBAL変数を設定する場合、ローカル変数は既存の接続では変更されません。再接続するか、ローカル変数を設定する必要があります。
FOREIGN_KEY_CHECKSを再度有効にすると、MYSQLは外部キーを強制しません。これにより、外部キーとチェックがオンであっても、一貫性のないデータベースを作成することができます。
外部キーが完全に一貫するようにするには、チェックがオンのときにキーを追加する必要があります。
あなたは詳しく説明できますか? "外部キーが完全に一貫しているようにするには、チェックがオンのときにキーを追加する必要があります。" – user2782001
IDを参照するテーブルがあるとしますが、参照されているレコードがありません。 FOREIGN_KEY_CHECKSがONの間に外部キー(FK)を追加すると、Mysqlはエラーを発生させ、壊れた参照のためにFKの追加を拒否します。 FOREIGN_KEY_CHECKSがオフの間に外部キーを追加すると、mysqlはエラーなしで続行します。後でチェックを有効にしてもエラーは発生しません。 FKがあるにもかかわらず、一貫性のないデータを持つテーブルが作成されました。 このように、FKの存在は、FKチェックがオンの間に追加されない限り、データベースの一貫性を保証しません。 –
- 1. MySQLは例えば</p> <p>、私はその場でこれを行うのですか
- 2. 行全体をsedに置き換えるには?</p> <pre>sed "s/aaa=bbb/aaa=xxx/g"</pre> <p>を今私が持っている:私は次のようにそれを行うことができます</p> <pre>aaa=xxx</pre> <p>:
- 3. 私はこれを行うことができますか? mysqlの値として(2 <a <8,1,0)なら?
- 4. Wordpressの - get_termsは()私は</p> <pre><code>get_terms('taxonomy' => 'any_taxonomy'); </code></pre> <p>を実行すると、それはのリストを返し、それがうまく動作しますが、ライブサーバー上の私のローカルマシン上
- 5. `unsafePerformIO(newTVarIO 0)`はどれくらい安全ですか?</p> <pre><code>uniqSource :: TVar Integer uniqSource = unsafePerformIO (newTVarIO 0) {-# NOINLINE uniqSource #-} </code></pre> <p>が、それは一度だけ実行することが保証されて:
- 6. 私は、それはperlの</p> <p>私がいたを使用して行うことができますどのように</p> <pre><code>String sql = Query1; </code></pre> <p>のようにそれを交換したい行</p> <pre><code>String sql="select * from "+ "emp_data"; </code></pre> <p>のように私が持っている私のファイルでのPerl
- 7. は、私は、次のコマンドを</p> <pre><code>rabbitmq-plugins.bat enable rabbitmq_management </code></pre> <p>を実行しようとしていますし、そのは私にエラーを与えてWindowsの
- 8. テキストが、私はこれが私のTDタグのテキスト全体を返し、このコード</p> <pre><code>Set TDElement = oHtml.getElementsByTagName("tr")(6).getElementsByTagName("td")(18) </code></pre> <p>を使用してTDタグを取得するVBA
- 9. は!SRCは、私は私のIDEで自動補完を使用する場合、それはでも、私はそれが単に動作する強打<code>!</code>を削除この</p> <pre><code><script !src=""></script> </code></pre> <p>のように埋めHTML
- 10. どこでcreate_if_missingまたはupdate_if_exists関数を実行するメソッドをdjangoに入れますか?</p> <ul> <li>は、この行を作成し、それは</li> <li>更新、それはDjangoのモデルの</li> </ul> <p>が存在する場合は、行が欠落している場合:私は実行するメソッドを置くべき場所で
- 11. は <p></p>がどのように私は、MySQLデータベースと挿入するそのPHPコードでこれを行うことができ、
- 12. Webアプリケーション全体を構成し、Webアプリケーション全体に影響を与えるファイルは何ですか?
- 13. は、私はそれを印刷するとき、それは</p> <pre><code>myPhoneExtTxt Type:System.Web.UI.HtmlControls.HtmlInputText </code></pre> <p>が、これは、このコードに基づいて生成されることを示すページでは、制御タイプ
- 14. は、私は、このLinuxのコマンドは、私はそれが<strong>OD -c</strong>に<strong>LS</strong>を送信しています知っている</p> <pre><code>ls | od -c </code></pre> <p>を行うかを理解しようとしている
- 15. HTMLイメージマップでは、これが現在のプロジェクト<a href="http://bit.ly/t43Sap" rel="nofollow">http://bit.ly/t43Sap</a></p> <p>である、それはここで私の落書きのようにそれを行うことが可能である、
- 16. 検索は「.. CD」私はディレクトリ内の「ホーム」だと私は</p> <pre><code>find . -iname *.mov </code></pre> <p>このコマンドを実行し、それが</p> <pre><code>./root/movies/Corey/holtorf/Intro.mov </code></pre> <p>今、私を生成し、再帰的に
- 17. は、リターンを隠し、私はこれを実行すると、私はすぐに私はそれが表示されて停止しますが、保存するにはどうすればよいの画面</p> <pre><code>#!/usr/bin/python3 import os myVar = os.system('echo, Hello') </code></pre> <blockquote> <pre><code>Hello </code></pre> </blockquote> <p>のリターンを示しています下の
- 18. は、これは私です</p> <pre><code>'[errors]' => [], </code></pre> <p>..私は、ユーザーテーブルを持っていると私は私が<code>$user</code>をデバッグする場合でも、それはnullを返し<code>save()</code>保存したいときにエラーがないCakePhp3
- 19. Python dir()はJavaScriptでこれに相当しますか?</p> <pre><code>dir(django.auth.models) </code></pre> <p>、それはあなたの<code>models</code>の内側にすべてのものを与えるだろう、何かがあります:私は、Pythonについて愛した何
- 20. MySQL正規表現のスタイルが置き換えられますか?</p> <p>/here/here2/something.jpg</p> <p>が、私はそれをマッピングするためにすべての行を変更する必要があります:
- 21. 私はこの正規表現は<code>C#</code>で細かい作業が、<code>JavaScript</code>に私にエラーを与えている
- 22. このクロージャはなぜ機能しますか?私はそうのようにそれを呼び出すとき</p> <pre><code>function callMessage(msg){ alert(msg); } </code></pre> <p>さて、それは動作しません:
- 23. と<th>要素の幅には何が影響しますか?
- 24. は、私は私はそれをどのように行うことができます</p> <pre><code>wadl: http://domain.com/application.wadl method: checkInfo </code></pre> <p>WADLサービスからメソッドを呼び出し、パラメータを渡す必要がPHP
- 25. 例外:</p> <pre><code>Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 thefirstone.Distance.main(Distance.java:18) </code></pre> <p>私はチュートリアルからこれをコピーしている:私はこのコードを実行すると、コンソールから0エラーメッセージが
- 26. 私は宝石のコマンドを入力するたびに、私はこのエラーを取得するように</p> <pre><code>gem "tilt" </code></pre> <p>または</p> <pre><code>gem "mysql" </code></pre> <p>として、宝石、未知のコマンド
- 27. リスニングソケットを再起動すると、受け入れられた接続にどのような影響がありますか? POSIX、<code>socket()</code> L1をINGの<code>listen()</code>にプロセス<code>accept()</code>の接続、およびその後<code>close()</code> S L1によれば
- 28. これはラムダですか?そうでない場合は何ですか?</p> <pre><code>Linq.From(Emp).Where(Emp['Sal'] > 1000) </code></pre> <p>はそれが私を覚ますと言うようになった:
- 29. なぜrsize_tが定義されていますか?私はそれが<strong>Visual Studioの</strong>によって行わトリックだと思う</p> <pre><code>typedef size_t rsize_t; </code></pre> <p>:
- 30. Rubyでtrue、false、またはnilを返すメソッドをどのようにメモすることができますか?それは<code>false</code>または<code>nil</code>であることが判明した場合、その後、<code>expensive_way_to_calculate_x</code>が何度も実行されますので、
test:mysqlにログイン: '%FOREIGN%'のような変数を表示; SET FOREIGN_KEY_CHECKS = 0;その後、別のコンソールを使用してmysqlにログインします。私は '%FOREIGN%'のようなショー変数がOFFの代わりにONであることを見ることができます。 –