簡體   English   中英

更新查詢在 mysql 工作台中不起作用

[英]Update query not working in mysql workbench

我有一個 MySql 查詢,如下所示:

UPDATE signup SET lastname='Lastname', password='123'
WHERE firstname='Firstname';

我正在使用 MySql Workbench 來執行查詢。

但它沒有更新行並顯示此錯誤:

您正在使用安全更新模式並且您嘗試更新沒有使用 KEY 列的 WHERE 的表 要禁用安全模式,請切換 Preferences -> SQL Editor 中的選項並重新連接。

在 mysql 工作台中,默認情況下啟用安全模式,因此如果您的WHERE子句沒有鍵,它將阻止運行查詢。 嘗試使用這些步驟禁用它 -

Edit > Preferences > Sql Editor > uncheck the "Safe Updates"

注意- 嘗試重新連接服務器( Query > Reconnect to Server ),然后再次運行您的查詢。

MySQL可以幫助您避免一次性更新/刪除多行。 為此,它不允許您在不傳遞 ID 參數的情況下運行UPDATE查詢。 這稱為SAFE UPDATES模式。

正如@ManojSalvi 所說,您可以從設置中永久設置它。

如果您想暫時禁用SAFE UPDATE模式,您可以嘗試以下操作:-

SET SQL_SAFE_UPDATES = 0;
UPDATE signup SET lastname='Lastname', password='123'
WHERE firstname='Firstname';
SET SQL_SAFE_UPDATES = 1;

[編輯] @ManojSalvi 明白了,工作台相關

MySQL 錯誤代碼:1175 在 MySQL Workbench 中的 UPDATE 期間


對我來說很好...

SQL小提琴

MySQL 5.6 架構設置

CREATE TABLE t
    (`firstname` varchar(6), `lastname` varchar(14), `password` varchar(3))
;

INSERT INTO t
    (`firstname`, `lastname`, `password`)
VALUES
    ('Pramod', 'Alfred', '***'),
    ('test', 'hello h.', '***')
;
UPDATE t SET lastname='Alfred Schmidt', password='123' WHERE firstname='Pramod';

查詢 1

select * from t

結果

| firstname |       lastname | password |
|-----------|----------------|----------|
|    Pramod | Alfred Schmidt |      123 |
|      test |       hello h. |      *** |

“安全模式”在 MySQL 工作台中默認處於開啟狀態。 您可以在左上角的 mysqlworkbench 中更改它 –> 首選項 –> sql 編輯器 –> 取消選中安全模式,然后嘗試重新連接。 或者你可以只輸入

SET SQL_SAFE_UPDATES = 0;

這將做同樣的事情。

我認為這與SAFE UPDATES沒有任何關系,因為您已明確說明您想在WHERE進行更改。 我遇到了同樣的問題,但我嘗試將列的名稱包含在反引號中 ` 並且它起作用了。 您可以在鍵盤上的數字 1 左側找到反引號。

您可以嘗試的另一件事是SELECT並雙擊要UPDATE的項目,然后應用窗口右下角的更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM