2017-07-22 69 views
1

我有我只是增加了一些表格,並建立外鍵約束小分貝......無法設置FOREIGN_KEY_CHECKS 0 /關閉

現在我想上傳一些數據,並瞭解使用以下至暫時關閉檢查...

SET FOREIGN_KEY_CHECKS = 0; 

我正在從SQL窗口此查詢......我得到一個「成功」的消息,但是當我檢查設定(通過SHOW Variables WHERE Variable_name='foreign_key_checks';)的設置顯示爲ON和如果沒有運行foreign_key-check錯誤/投訴,我無法上傳。

後我運行查詢消息:

MySQL返回的結果爲空(即零行)。 (查詢花費 0.0001秒。)

我試圖用全球版本,並得到了一個消息,說我的用戶沒有必要的特權......

我甚至不知道我的用戶通過數據庫訪問數據庫 - 我使用phpMyAdmin登錄到我的雲託管的專用服務器後...不通過數據庫用戶。

我看到在我的phpMyAdmin的主頁底部的以下內容:

你的PHP MySQL庫版本,73年5月1日不同於你的MySQL服務器版本36年6月5日。這可能會導致不可預知的行爲。

任何幫助表示讚賞。

回答

1

僅在會話期間更改類似foreign_key_checks的會話變量。一旦你打開一個新的連接,該選項默認爲全局值。

與每個PHP應用程序一樣,PhpMyAdmin爲每個請求打開一個新連接。因此,只要您更改foreign_key_checks,它就會關閉您更改該選項的會話,並且更改結束。

如果要更改此選項,則必須將該更改作爲導入腳本的一部分執行,以便在處理導入的連接開始時處理它。

另一種可能性是將其更改爲,但這會影響所有會話,而不僅僅是用於導入的會話。另外,您需要SUPER權限才能更改全局選項,而您似乎沒有該權限。

編輯: 另一種選擇是取消選中「啓用外鍵檢查」在進口環節... Screenshot of Import in phpMyAdmin

+0

非常感謝!我想我需要理解「會話」的定義......這非常合理。 此外,在導入過程中,您可以選擇(複選框)關閉外鍵檢查。有人在某些地方可憐新手... – 11teenth

+0

@ 11teenth請用複選框解決方案建議編輯。或者如果BIll不喜歡編輯,請編寫自己的答案:-) –