cevap
Bu oturum tabanlı olduğu, sorunuzun içinde olduğu şekilde ayarlandığında.
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
Buna göre FOREIGN_KEY_CHECKS
"Hem" kapsamında içindir. Bu oturum için ayarlanabilir gelir:
SET FOREIGN_KEY_CHECKS=0;
veya küresel:
SET GLOBAL FOREIGN_KEY_CHECKS=0;
Aslında, iki foreign_key_checks
değişken vardır: global değişken ve bir yerel (dönem başına) değişken. Bağlantı üzerine, oturum değişkeni global değişkenin değerine başlatılır.
SET foreign_key_checks
komutu, oturum değişkenini değiştirir.
, küresel değişkeni değiştirmek SET GLOBAL foreign_key_checks
veya SET @@global.foreign_key_checks
kullanın.
aşağıdaki manuel bölümleri Consult: http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
Her istek için foreign_key_checks ayarlanıyor mu? DB'yi yükseltmek için bir komut dosyası var ve bu yükseltme sırasında varsayılan olarak yabancı anahtar denetimlerini geçersiz kılabilmek istemiyorum. Öyleyse milyonlarca sorgu yapardım ve bir SET'in anlamlı olup olmayacağını merak ettim? – Aki
@Aki DB'yi yükseltiyorsanız, herkes için erişimi kilitlemenin daha iyi olduğunu söyleyebilirim. En azından yazı için. Aksi takdirde, her türlü eşzamanlı erişim sorununu bekleyebilirsiniz. – tishma
Harika cevap ve ayrım. Nasıl çalıştığının sonuçlarını anlamak önemlidir. Bu, GLOBAL 'foreign_key_checks 'ayarlayamayacağınız anlamına gelir ve aynı oturumda yabancı anahtar kısıtlamalarını görmezden gelmesini bekler. Küresel olmayan değişkeni ayarlamanız gerekir. –
# will get you the current local (session based) state.
SHOW Variables WHERE Variable_name='foreign_key_checks';
Eğer GLOBAL SET olmadıysa
http://dev.mysql.com/doc/refman/5.7/en/using-system-variables.html
, yalnızca oturum etkilendi. MySQL sorgu tarayıcı kullanarak durumunda
, SET FOREIGN_KEY_CHECKS=0;
sürümü 1.1.20 herhangi bir etkisi yoktur. Ancak, MySQL sorgu tarayıcısı Ron tarafından açıklandığı üzere 1.2.17
üzerinde çalışıyor, yerel ve küresel iki değişken vardır. Yerel değişken her zaman kullanılır ve bağlantı üzerinden global ile aynıdır.
SET FOREIGN_KEY_CHECKS=0;
SET GLOBAL FOREIGN_KEY_CHECKS=0;
SHOW Variables WHERE Variable_name='foreign_key_checks'; # always shows local variable
KÜRESEL değişken ayarlama
, yerel bir varolan herhangi bağlantıları için değiştirilmedi. Yerel değişkeni de yeniden bağlamanız veya ayarlamanız gerekir. FOREIGN_KEY_CHECKS yeniden etkin olduğundaBelki unintuitive, MYSQL yabancı anahtarları zorlamaz. Bu, yabancı anahtarlar ve kontroller açık olsa bile tutarsız bir veritabanı oluşturmayı mümkün kılar. Eğer yabancı anahtarları tamamen tutarlı olmasını istiyorsanız
, sen kontrol açıkken tuşları eklemeniz gerekir.
Detayı düzeltebilir misiniz? "Yabancı anahtarlarınızın tamamen tutarlı olmasını istiyorsanız, kontrol açıkken anahtarları eklemeniz gerekir." – user2782001
Diyelim ki, başvuru kimliğine sahip bir tablonuz var, ancak bazı referans kayıtları eksik. FOREIGN_KEY_CHECKS AÇIK iken yabancı anahtarı (FK) eklerseniz, Mysql bir hata verecek ve kırık referans nedeniyle FK'yi eklemeyi reddedecektir. FOREIGN_KEY_CHECKS KAPALI iken yabancı anahtarı eklediğinizde, mysql hatasız devam eder. Daha sonra kontrolleri etkinleştirdiğinizde bile, herhangi bir hata olmayacaktır. Artık bir FK olsa da, tutarsız veriler içeren bir tablonuz var. Böylelikle, FK kontrolleri yapılırken eklenmediği sürece FK'nin varlığı, veritabanı tutarlılığının garantisi değildir. –
- 1. Git, <<<<<<< HEAD dosyasına
- 2. <nedir? ve <? php
- 3. İçindeki eleman sayısı <5 in <a1 <0</ a1><T>
- 4. Java, bitshifts kullanırken, neden 1 << 32! = 1 << 31 << 1?
- 5. Set <T>
- 6. Set <String> Set []?
- 7. EJS: <% = versus <% -
- 8. <: <İş nasıl?
- 9. jQueryUI sürüm 1.10 otomatik tamamlama - _renderItem nasıl ayarlanır?</p> <pre><code>Uncaught TypeError: Cannot set property '_renderItem' of undefined </code></pre> <p>yeni jQueryUI sürümlerinde farklı nedir:
- 10. REGEX: <code><%=anything%><%=anything%></code></p> <p>ve normal bir ifade: <code><%=\\s*(\\S+)\\s*%></code> bu açıklama ı bildirimde bulunmamış REGEX
- 11. Nasıl</p> <p>bu 0 benim kodudur
- 12. "Radiobutton" işaretli mi kontrol edilir?</p> <pre><code>regAuxiliar = ultimoRegistro; </code></pre> <p>Ve Radiobuton:
- 13. "<%:" ne yapıyor?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>"<%:" Ne vermez: do
- 14. XPath - tüm elemanlar alt elemanlara belge</p> <pre><code><a> <b> <c/> <d/> </b> <b> <c/> <d/> </b> </a> </code></pre> <p>Verilen
- 15. Nedir? ve << demek?
- 16. EF7 Ben <code>UWP</code> uygulamada, <code>SQLite</code> ile <code>EF7</code> kullanıyorum veritabanını
- 17. css: 2 veya <code><thead></code> yılında <code><tr></code> daha varsa <tr>
- 18. <section>, <nav> ve <article>
- 19. $ <ve $ @,
- 20. Şu izle ifadem tutan bana gösteriyor Şu anda bir</p> <pre><code>Expression<Func<T,bool>> </code></pre> <p>bir</p> <pre><code>Expression<Func<T,object>> </code></pre> <p>dönüştürmek çalışıyorum
- 21. Varlık Framework SaveChanges()</p> <pre><code>_auctionContext.SaveChanges(); </code></pre> <p>sonra veritabanını Yukarıdaki kodda
- 22. Kanal seç <- <- Kanal
- 23. angularjs - ReferenceError: Bu</p> <p><code>var fbcanvas = $('#fbcanvas');</code></p> <p>yapmaya çalıştıklarında $ Bu Bu benim JS olduğunu ben</p> <blockquote> <p>ReferenceError: $ is not defined</p> </blockquote> <p>var hatadır
- 24. Haritaya <Eşleme <String, Dize>
- 25. Operatörler << sınıfları için biçimlendirmeli misiniz?
- 26. Android Studio i</p> <pre><code>';' </code></pre> <p>Android Studio yazıyor bastığınızda ... benim klavye tuşları
- 27. Objective-C'de özel yönergeler oluşturmak mümkün mü?</p> <ul> <li>@interface</li> <li>@implementation</li> <li>@end</li> <li>@protocol bence</li> <li>@property</li> <li>@synthesize</li> </ul> <p>:
- 28. Boost :: multiprecision :: sqrt (1) neden 0 döndürüyor? <br> i == 1 <br> mp :: sqrt (i) == 0</p> <p>bunu bekliyoruz:
- 29. << = operatör javascript’te ne yapıyor?
- 30. ruby bloğu ile başlar << - HTML
sınama: mysql dosyasına giriş yap: '% FOREIGN%' gibi değişkenleri göster; SET FOREIGN_KEY_CHECKS = 0; Bundan sonra farklı bir konsol kullanarak mysql içine giriş yapın. '% FOREIGN%' gibi şov değişkenlerinin OFF yerine AÇIK olduğunu görebiliyorum. –