2017-01-30 71 views
2

我的表是這樣創建的:如何刪除當主鍵包含兩列,並使用安全模式

CREATE TABLE test(
num1 INT, 
num2 INT, 
PRIMARY KEY(num1, num2) 
); 

什麼應該我刪除查詢什麼樣子的?

使用

DELETE FROM test WHERE num1=1 AND num2=2; 

只會導致此錯誤消息:

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 

而且,我可以告訴大家,我不知道如何打開安全更新模式關閉,但是,這並不回答我的問題。

+2

沒有要求根據主鍵刪除 –

+0

您是否嘗試了查詢? –

+0

這些名稱不會更改。我目前沒有考慮優化,我只是想知道如何將這個主鍵包含到WHERE中,這是在安全模式打開時需要的。 – fihgus

回答

2

我見過一些其他的Stack Overflow帖子,其中有人抱怨說MySQL Workbench阻止他們不恰當地執行安全更新。

但我只是試着用你的表,與PK列和一個非關鍵列。當啓用安全模式時,它會阻止我通過非密鑰列進行更新,因爲它應該如此。但是我沒有看到你描述的錯誤。

enter image description here

我使用MySQL工作臺6.3.8和MySQL服務器8.0.0-DMR。

也許這是舊版本的MySQL或舊版本的MySQL Workbench中的一個錯誤。

+1

更新了mysql,現在它正在工作,謝謝。 – fihgus

0

更新了mysql並且錯誤消失了。 我的時間浪費了多少。