I'm trying to update the column visited
to give it the value 1. I use MySQL workbench, and I'm writing the statement in the SQL editor from inside the workbench. I'm writing the following command:
UPDATE tablename SET columnname=1;
It gives me the following error:
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 ....
I followed the instructions, and I unchecked the safe update
option from the Edit
menu then Preferences
then SQL Editor
. The same error still appear & I'm not able to update this value. Please, tell me what is wrong?
All that's needed is: Start a new query and run:
Then: Run the query that you were trying to run that wasn't previously working.
Follow the following steps before executing the UPDATE command: In MySQL Workbench
Edit
-->Preferences
"SQL Editor"
tab anduncheck
"Safe Updates"check box
Query
-->Reconnect to Server
// logout and then loginp.s., No need to restart the MySQL daemon!
I found the answer. The problem was that I have to precede the table name with the schema name. i.e, the command should be:
Thanks all.
Since the question was answered and had nothing to do with safe updates, this might be the wrong place; I'll post just to add information.
I tried to be a good citizen and modified the query to use a temp table of ids that would get updated:
Failure. Modified the update to:
That worked. Well golly -- if I am always adding where key <> 0 to get around the safe update check, or even set SQL_SAFE_UPDATE=0, then I've lost the 'check' on my query. I might as well just turn off the option permanently. I suppose it makes deleting and updating a two step process instead of one.. but if you type fast enough and stop thinking about the key being special but rather as just a nuisance..
OR
Go to
Edit --> Preferences
Click
SQL Queries
tab and uncheckSafe Updates
check boxQuery --> Reconnect to Server
Now execute your sql query
It looks like your MySql session has the safe-updates option set. This means that you can't update or delete records without specifying a key (ex.
primary key
) in the where clause.Try:
Or you can modify your query to follow the rule (use
primary key
inwhere clause
).