sqlalchemy session merge vs add

SQLAlchemy 中的 Session 对象是一个数据库会话,它提供了对数据库的持久化操作的高级封装。 Session.add Session.merge 是两种用于将对象添加到会话中的方法。

Session.add 方法将一个新的对象添加到会话中,并将该对象的状态设置为「新建」。当会话被提交时,将执行 INSERT 语句,将对象添加到数据库中。

Session.merge 方法则接受一个对象,并将其与会话中的同一个对象合并。如果会话中存在与该对象相同的对象,则将更新会话中的对象的属性。如果会话中不存在与该对象相同的对象,则将新对象添加到会话中。当会话被提交时,将执行 INSERT 或 UPDATE 语句,将对象的修改同步到数据库中。

总的来说,如果想要添加一个新的对象到会话中,应使用 Session.add 方法。如果想要将对象与会话中已有的对象合并,则应使用 Session.merge 方法。

  •