我有 2 个表:Book
和Author
辅助表books_authors
,类似于此代码:
book=Book()
for author in authors:
a = Author()
a.books.append(book)
session.merge(a) #1
session.merge(book) #2
session.commit()
此代码导致错误
sqlalchemy.exc.IntegrityError:
(IntegrityError) (1062, "Duplicate entry '1234' for key 'id'")
'INSERT INTO `Book` (title, id) VALUES (%s, %s)' ('test', u'1234')
我想这是因为合并进行了两次(#1,#2)。
所以我决定删除#1
。没有发生错误,但表 Author 中没有任何内容。当我决定删除#2
时,表格 Book、Author 和 books_authors 填写正确,只要只有一位作者被添加到书中。
更多作者导致与以前的错误类似。
#2
合并不合并添加的作者是否正常?它只在一个方向上起作用吗?如果是,如何通过合并两个作者条目来不重复书籍条目?