【发布时间】:2022-01-25 22:37:45
【问题描述】:
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, autoincrement=True)
user_id = Column(String, primary_key=True)
first_name = Column(String(50))
last_name = Column(String(50))
children = relationship("UserAndGroup")
class Group(Base):
__tablename__ = "groups"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(50))
children = relationship("UserAndGroup")
class UserAndGroup(Base):
__tablename__ = "groups_users"
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
group_id = Column(Integer, ForeignKey("groups.id"), primary_key=True)
我在上面附上了我的模型。
插入用户时:
session.add(User(user_id="johnny123", first_name="John", last_name="Don"))
我收到以下错误:
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null, johnny123, John, Don).
我正在使用以下软件包:
SQLAlchemy 1.4.29
psycopg2 2.9.2
我浏览了文档,它说自动增量是主键的默认行为。
我可能做错了什么,感谢您的帮助。
【问题讨论】:
-
primary_key= True用于 id 和 user_id? -
您最近更换了模型吗?您的表是否已经存在?
-
是的,我改变了我的模型,但忘了放下它们。
标签: python postgresql sqlalchemy