首页 文章

更新查询无法在mysql工作台中运行

提问于
浏览
2

我有一个MySql查询,如下所示:

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

我正在使用MySql Workbench来执行查询 .

但它没有更新行并显示此错误:

您正在使用安全更新模式,并且您尝试更新没有使用KEY列的WHERE的表要禁用安全模式,请在Preferences - > SQL Editor中切换选项并重新连接 .

4 回答

  • 0

    在mysql工作台中,默认情况下启用安全模式,因此如果 WHERE 子句没有密钥,则会阻止运行查询 . 尝试使用这些步骤禁用它 -

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

    Note - 尝试重新连接服务器( Query > Reconnect to Server ),然后再次运行查询 .

  • 1

    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;
    
  • 2

    MySQL工作台默认启用“安全模式” . 您可以将其更改为左上角的mysqlworkbench - > preferences-> sql editor - >取消选中安全模式,然后尝试重新连接 . 或者你可以输入

    SET SQL_SAFE_UPDATES = 0;

    这也是一样的 .

  • 12

    [编辑] @ManojSalvi得到它,工作台相关

    MySQL error code: 1175 during UPDATE in MySQL Workbench


    对我工作很好......

    SQL Fiddle

    MySQL 5.6 Schema Setup

    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';
    

    Query 1

    select * from t
    

    Results

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

相关问题