python - SQLAlchemy IntegrityError:但是哪些记录?
问题描述
在我的程序中,我使用了一个执行多操作。好吧,它工作正常,但如果数据库中已经存在一条记录,我会得到 IntegrityError 异常。那很好而且正确。但我不知道哪个记录现在是双倍的。我想我无法正确解释 Traceback。
> File
> "D:\Dan\Python\Xarphus\xarphus\subclass_master_data_load_data_item.py",
> line 358, in _bulk_save_list_records
> master_data_manipulation.add_record(bulk_list = list_records, category = category, work_area = work_area) File
> "D:\Dan\Python\Xarphus\xarphus\core\manage_data_manipulation_master_data.py",
> line 393, in add_record
> self._session.bulk_save_objects(object_list) File "build\bdist.win32\egg\sqlalchemy\orm\session.py", line 2372, in
> bulk_save_objects
> return_defaults, update_changed_only, False) File "build\bdist.win32\egg\sqlalchemy\orm\session.py", line 2536, in
> _bulk_save_mappings
> transaction.rollback(_capture_exception=True) File "build\bdist.win32\egg\sqlalchemy\util\langhelpers.py", line 66, in
> __exit__
> compat.reraise(exc_type, exc_value, exc_tb) File "build\bdist.win32\egg\sqlalchemy\orm\session.py", line 2531, in
> _bulk_save_mappings
> isstates, return_defaults, render_nulls) File "build\bdist.win32\egg\sqlalchemy\orm\persistence.py", line 69, in
> _bulk_insert
> bookkeeping=return_defaults) File "build\bdist.win32\egg\sqlalchemy\orm\persistence.py", line 799, in
> _emit_insert_statements
> execute(statement, multiparams) File "build\bdist.win32\egg\sqlalchemy\engine\base.py", line 945, in
> execute
> return meth(self, multiparams, params) File "build\bdist.win32\egg\sqlalchemy\sql\elements.py", line 263, in
> _execute_on_connection
> return connection._execute_clauseelement(self, multiparams, params) File "build\bdist.win32\egg\sqlalchemy\engine\base.py", line
> 1053, in _execute_clauseelement
> compiled_sql, distilled_params File "build\bdist.win32\egg\sqlalchemy\engine\base.py", line 1189, in
> _execute_context
> context) File "build\bdist.win32\egg\sqlalchemy\engine\base.py", line 1402, in _handle_dbapi_exception
> exc_info File "build\bdist.win32\egg\sqlalchemy\util\compat.py", line 203, in raise_from_cause
> reraise(type(exception), exception, tb=exc_tb, cause=cause) File "build\bdist.win32\egg\sqlalchemy\engine\base.py", line 1159, in
> _execute_context
> context) File "build\bdist.win32\egg\sqlalchemy\engine\default.py", line 467, in
> do_executemany
> cursor.executemany(statement, parameters) IntegrityError: (sqlite3.IntegrityError) column genre is not unique [SQL: u'INSERT
> INTO music_genre (genre) VALUES (?)'] [parameters: ((u'\ufeffGlitch
> Pop',), (u'Shoegaze',), (u'Tango',), (u'Bitpop and Chiptune',),
> (u"R'n'B",), (u'Hard Bop',), (u'Afro Punk',), (u'Irish Rock',) ...
> displaying 10 of 746 total bound parameter sets ... (u'Roots',),
> (u'Alternative Rap',))]
解决方案
推荐阅读
- android - 使用 Libgdx (Android) 在鼠标单击时渲染形状
- mongodb - 使用 Express Validator 和 Mongoose 验证唯一文本
- python - 从服务器读取文件并将其上传到 Anonfile
- android - 如何使用 FFMPEG 在 android 中的视频上连续加载 GIF?
- android - 不变的违规行为:对象作为 React 子对象无效(发现:带有键 {fontweight, fontsize} 的对象)
- pdf - ps2pdf时gsview 9.27发生了什么
- laravel - 如何从larvel框架模型中的表中获取数据并直接在视图中使用?
- react-native - 在本机反应中添加长按事件
- php - 覆盖 Laravel 5.2 上的 phpunit
- ios - 在 XCode 上需要帮助:线程 1:EXC_BAD_INSTRUCTION (WebView)