老师,我这个sql语句哪里错了呢

老师,我这个sql语句哪里错了呢


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

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()
    # 使用INSERT语句向部门表插入两条记录,每条记录都在部门原有最大主键值的基础上+10
    sql = "INSERT INTO t_dept (SELECT MAX(deptno)+10,%s,%s FROM t_dept UNION" \
          " SELECT MAX(deptno)+20,%s,%s FROM t_dept)"
    cursor.execute(sql, ["A部门", "北京", "B部门", "深圳"])
    con.commit()
except Exception as e:
    if "con" in dir():
        con.rollback()
    print(e)


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

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

1回答
好帮手慕燕燕 2022-06-18 10:15:49

同学,你好!老师这边运行同学提供的代码是没有问题的,没有语法错误,同学可在except块中打印一下SQL语句,运行程序,如果仍然报错,查看一下打印的SQL语句内容

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

祝:学习愉快!

  • 提问者 慕尼黑1183503 #1

    这是打印出来的信息

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

    2022-06-18 20:16:49
  • 好帮手慕小猿 回复 提问者 慕尼黑1183503 #2

    同学,你好!1.同学可以把输出的sql 语句放在navicat里运行下看看是否报错,若报错请提供下截图

    2.同学可以把括号去掉运行下看看

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

    祝学习愉快~

    2022-06-19 10:28:53
  • 提问者 慕尼黑1183503 回复 好帮手慕小猿 #3

    去掉括号就正常了,谢谢老师

    2022-06-19 14:04:20
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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