当前位置: 首页 > 知识库问答 >
问题:

SQLAlchemy:我无法从表中删除记录-违反not-null约束

微生永春
2023-03-14

如果添加“relationship”,则会出现以下错误:

(Psycopg2.integrityError)列\“robot_id\”中的null值违反了not-null约束\n详细信息:失败的行包含(25,p-svwd5sx_cjxuydm41ohhcwkxycsog33vmrtxbbvi,null)

class Robot(Base, SQLTableJsonEncoder):
    __tablename__ = 'robots'

    id = sa.Column(sa.Integer, primary_key=True)
    name = sa.Column(sa.String, nullable=False)
    hmac_secret = sa.Column(sa.String, nullable=False)
    user_id = sa.Column(sa.String, sa.ForeignKey('users.public_id', ondelete='CASCADE'))
    api_key = relationship('ApiKey', uselist=False)

class ApiKey(Base):
    __tablename__ = 'api_keys'

    id = sa.Column(sa.Integer, primary_key=True)
    key = sa.Column(sa.String, nullable=False)
    robot_id = sa.Column(sa.Integer, sa.ForeignKey('robots.id', ondelete='CASCADE'))

服务:

    async def delete_robot(self, user, robot_id):
        robot = super().get_first(mapped=Robot, user_id=user.public_id, id=robot_id)
        if not robot:
            raise NotFound(payload='Check your robot id')
        super().delete(robot)

        return robot.id

共有1个答案

施辉
2023-03-14

我的情况的解决方案:在'relationship'中添加设置'cascade':

class Robot(Base, SQLTableJsonEncoder):
    __tablename__ = 'robots'

    id = sa.Column(sa.Integer, primary_key=True)
    name = sa.Column(sa.String, nullable=False)
    hmac_secret = sa.Column(sa.String, nullable=False)
    user_id = sa.Column(sa.String, sa.ForeignKey('users.public_id', ondelete='CASCADE'))
    api_key = relationship('ApiKey', uselist=False, cascade='delete')
 类似资料:
  • 堆栈溢出。 和 详细信息:失败行包含(18,Item Name在这里,这是描述,40.00,items/pattern.png,lXBjgo70QIrI8aF,1,null)。 这是完整的回溯 null 提前谢谢你

  • 我有这个实体 由:javax.Persistence.persistenceException:Exception[EclipseLink-4002](Eclipse Persistence.Exceptions.databaseException内部异常:org.PostgreSQL L.util.psqlException:错误:列“id_product”中的null值违反了not-null约

  • 照明\database\queryexception SQLSTATE[23000]:完整性约束违反:19 NOT NULL约束失败:users.password(SQL:插入“users”(“name”、“email”、“username”、“updated_at”、“created_at”)值(MADHUP KUMAR,Chandrashivam99@gmail.com,Vansh123,20

  • 我在postgresql中创建了一个存储过程,如下所示: 是->的类型 我在插入时得到如下错误:

  • 我有一个实体,依靠它hibernate可以为一个Tomany-Relations生成连接表。 但当我运行应用程序时,我收到以下异常: psqlexception:eroor:列“inner_request_types_id”中的null值违反约束NOT null 否则我如何删除NotNull-Constraint?

  • 当我打印申请者的技能列表时,我有以下内容: 下面是一张表格,列出了申请人和技能之间的联系: 但是当我试图保存申请者时,我有这样一个提示:失败的行包含(23,null,null,499)。有人能给我解释一下吗?我正在使用jpa注释开发一个spring应用程序。