老师,如果不开启事务机制,就不能对数据库进行增删改查吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕凡 2022-06-17 17:03:16

同学,你好!

不开启事务可以进行操作的,不过开启事务后进行的操作会被视为一个整体,要么全部执行成功,要么全部执行失败,可以保证数据的一致性,祝学习愉快~

  • 提问者 慕尼黑1183503 #1

    老师我不开启事务机制,执行了数据库没有生效,只有把事务机制开启了数据库才有生效

    import mysql.connector.pooling
    
    config = {
        "host": "localhost",
        "port": 3306,
        "user": "root",
        "password": "123456",
        "database": "demo"
    }
    try:
        pool = mysql.connector.pooling.MySQLConnectionPool(
            **config,
            pool_size=10
        )
        con = pool.get_connection()
        # con.start_transaction()
        cursor = con.cursor()
        sql = "INSERT INTO t_dept(deptno,dname,loc) VALUES(%s,%s,%s)"
        data = [
            [100, "A部门", "北京"], [110, "B部门", "上海"]
        ]
        cursor.executemany(sql, data)
        # con.commit()
    except Exception as e:
        # if "con" in dir():
        #     con.rollback()
        print(e)


    2022-06-17 18:14:35
  • 好帮手慕凡 回复 提问者 慕尼黑1183503 #2

    同学,你好!

    需要把con.commit()注释去掉,增,删,改数据后需要con.commit( )提交,如下图:

    https://img1.sycdn.imooc.com//climg/62ac5c4409494c5008110469.jpg

    祝学习愉快~

    2022-06-17 18:41:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师