V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
kangsgo
V2EX  ›  MySQL

sql update where set 字段相同,这个要怎么写呢

  •  
  •   kangsgo · 49 天前 · 847 次点击
    这是一个创建于 49 天前的主题,其中的信息可能已经有所发展或是发生改变。
    UPDATE fa_iot_order SET card_id=1 WHERE card_id =2;
    

    我这么写会超时

    1205 - Lock wait timeout exceeded; try restarting transaction

    时间: 50.634s

    第 1 条附言  ·  49 天前
    谢谢大家,此问题已解决了,是数据库的不知道怎么回事查什么都锁了,重启数据库就好了
    kiracyan
        1
    kiracyan   49 天前   ❤️ 1
    你的表多大啊 这个字段加索引了吗 加个数量限制 多执行几次
    jindeq
        2
    jindeq   49 天前 via Android   ❤️ 1
    表里啥情况都不知道怎么看?数据量太大且一直有更新,这个锁肯定不能加的上
    kangsgo
        3
    kangsgo   49 天前
    @kiracyan
    @jindeq
    是因为太大的原因么,这个表有 10 万条数据
    ```
    UPDATE fa_iot_order SET card_id=1 WHERE card_id =2 LIMIT 1;
    ```
    这样限制一下么
    kiracyan
        4
    kiracyan   49 天前   ❤️ 1
    @kangsgo 10 万不算多 表是一直有数据插入吗
    kangsgo
        5
    kangsgo   49 天前
    @kiracyan 我是本地查服务器的,会不会这个有影响。一直有查询,插入应该比较少
    mchl
        6
    mchl   49 天前 via iPhone   ❤️ 1
    start transaction;
    update…
    commit;
    msg7086
        7
    msg7086   49 天前   ❤️ 1
    比如说 limit 1000,然后反复跑到跑完为止啊。
    512357301
        8
    512357301   49 天前 via Android   ❤️ 1
    先加个索引吧,加索引是基本操作了,10 万条全表遍历一遍也很慢的。
    你的这个保存按照提示是说加锁超时,也可能是其他的查询或者写入操作一直在占用着整个表导致你这段语句没法锁表
    512357301
        9
    512357301   49 天前 via Android
    @512357301 打错字了,你的这个报错按照提示是说加锁超时
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1591 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 00:15 · PVG 08:15 · LAX 16:15 · JFK 19:15
    ♥ Do have faith in what you're doing.