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

postgresql检查约束的自定义错误消息

云浩然
2023-03-14

但是我不想显示这样的消息:“插入记录失败。需要名称”。

有什么方法可以在PostgreSQL中显示自定义错误消息吗?

共有1个答案

夏侯元忠
2023-03-14

这是一个高级领域,因为您希望在开始之前非常熟悉SQL状态以及现有的错误消息。请注意,您希望在适当的情况下重用现有的sql状态,以便应用程序不知道您已经重写了check约束。

但是您可以创建一个函数来运行检查,并在检查失败时发出raise exception。类似于:

CREATE FUNCTION check_is_not_null(value text, column_name text) RETURNS BOOL 
LANGUAGE plpgsql AS $$
begin
   IF $1 IS NULL THEN
      RAISE EXCEPTION 'Error:  % is required', $2;
   END IF;
   RETURN TRUE;
END;
$$;

如果您使用的是8.4或更高版本,则可以指定SQL状态。

 类似资料:
  • 我有以下用于自定义约束的代码:

  • 错误:关系“test”的新行违反了检查约束“test_status_check”详细信息:失败的行包含(5,2015-07-21,15:00:00,I7,9,NULL,NULL)。

  • 问题内容: 我有一个用户表,例如: 和一张有工作的桌子: 可以将作业分配给用户,但只能分配给超级用户。其他用户无法分配作业。 因此,我有一个表格,通过它可以查看将哪个作业分配给了哪个用户: 但是我想创建一个检查约束,该约束引用具有的用户。 那可能吗?还是有其他解决方案? 问题答案: 这将适用于INSERTS: 然后在user_has_job表上检查约束: 适用于插入物: 但是,这是可能的: 因此,

  • 安全测试人员声称,我应该清理返回的JSON(即转义这些符号),因为这可能会给旧的浏览器带来一些问题(即在浏览器中执行此JS代码)。 但是生成错误消息的是SpringBoot框架, 我在这里没有太多的控制权。 当然,我可以将参数定义为String,并自己进行验证,但我怀疑这是否是正确的方法。我的参数定义为Integer,我希望它保持这种方式。 做这件事最简单的方法是什么?

  • 我有一个自定义注释@UniqueModel,它由ConstraintValidator验证: 问题是,我需要在调用存储库的safe()-方法之前进行验证,否则字段注入将无法工作。 因此,我创建了一个带有@Valid注释的委托方法,以便在以下情况之前强制进行唯一验证: 不幸的是,这不起作用,似乎@Valid注释被Spring忽略了。 我如何确保验证的正确时间?

  • PostgreSQL 约束用于规定表中的数据规则。 如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。 约束确保了数据库中数据的准确性和可靠性。 约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。 以下是在 PostgreSQL 中常用的约束。 NOT NULL