我知道如果我尝试使用ORM执行select查询,可以使用print
方法来打印要生成的SQL:
print session.query(MyModel)
应该返回select * from MyModel
(确切的SQL语句可能不同,但思路是相同的)。
现在我有一段代码,我创建了一个父对象,循环遍历一些数据创建连接到父对象的子对象,使用relationship,然后调用session.add(parent_object)
,接着是session.commit()
。
除了这会生成一个我认为不可能生成的错误。
是否有一种方法可以查看用于插入数据的SQL语句?
生成的错误是:
arg = (<class 'sqlalchemy.exc.ProgrammingError'>, ProgrammingError("(pg8000.core.ProgrammingError) (u'ERROR', u'ERROR', u'22001'... too long for type character varying(10)', u'varchar.c', u'624', u'varchar')",), <traceback object at 0x10c98bb00>)
当我唯一的列是varchar(10)
时,插入的值为'7835109626'