› 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
Nixus
V2EX  ›  MySQL

MySQL 能否依次执行 SQL:先执行 SQL 甲,甲执行成功,再执行 SQL 乙;如果 SQL 甲执行失败,则放弃执行乙

  •  
  •   Nixus · Dec 23, 2015 · 3562 views
    This topic created in 3937 days ago, the information mentioned may be changed or developed.

    我知道事务处理可以做到,但是,事务比较适合处理一条数据的情况;

    如果有一堆数据,需要做这样的操作,该如何实现呢?

    如果有一堆数据,通过遍历来实现,那不是要不停的开启 /关闭事务,效率肯定会大幅下降的,即使遍历前开启事务,遍历后 commit/rollback ,那对数据库的操作也是挺大的

    求解决办法

    6 replies  •  2015-12-23 18:37:35 +08:00
    young
        1
    young  
       Dec 23, 2015   ❤️ 1
    建议去看一下 mysql 的事务文档, 可以部分提交 /回滚
    magnetoeric
        2
    magnetoeric  
       Dec 23, 2015   ❤️ 1
    mysql savepoint
    Nixus
        3
    Nixus  
    OP
       Dec 23, 2015
    @young 能否获得被回滚的数据呢?
    qhxin
        4
    qhxin  
       Dec 23, 2015
    一堆数据也可以啊,合理规划不会影响效率的,具体情况具体分析
    elgoog1970
        5
    elgoog1970  
       Dec 23, 2015
    mysql 事务
    mko0okmko0
        6
    mko0okmko0  
       Dec 23, 2015
    假设这个 甲 有点大量.
    不要用交易:
    但需要多一个整数栏位(假设是 ipath).预设 null.
    开始甲之前,取得一个本日豪秒或是格林威治千分秒数.反正需要一个不可能重复的数字.
    汇入 甲的时候此栏放入这个数字.代表这一批 甲 的批次编号.
    汇完甲后,检查此批的数量是否正确:
    count(ipath) as cnt where ipath=批号
    如果正确:执行 乙 .
    不正确:删除 ipath=批号 的纪录.

    如果跑完 乙 ,不需要 ipath 这栏了.删除栏位.

    其实交易处理这个真的很好用阿.不然交易是拿来看的吗?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2230 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 10:35 · PVG 18:35 · LAX 03:35 · JFK 06:35
    ♥ Do have faith in what you're doing.