首页 > 解决方案 > sqlalchemy,插入尝试除块

问题描述

我有一个查询,我打算用 try-except 块插入,这样我就可以忽略所有未通过某个约束的查询,即IntegrityError.

with sql_engine.begin() as cn:
        sql = """INSERT INTO table1 (m_id, pick_on)
                    SELECT t.m_id, t.pick_on
                    FROM temp_table t
                    WHERE NOT EXISTS 
                        (SELECT 1 FROM table1 f
                        WHERE (t.m_id = f.m_id
                        OR  (t.m_id IS NULL AND f.m_id IS NULL))
                        AND t.pick_on = f.pick_on)"""
        try:
            cn.execute(sql)
        except:
            print("Unexpected error:", sys.exc_info()[0])
            print(sql)
            pass

但这不会将所有记录插入到table1. 为什么?

标签: pythonpython-3.xsqlalchemyinsertpymysql

解决方案


推荐阅读