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

Postgresql ON CONFLICT ON CONSTRAINT 2约束

司寇旺
2023-03-14

我正在使用PostgreSQL 9.5,我想知道是否有可能在ON CONFLICT ON CONSTRAINT语句中包括2个约束的名称

INSERT INTO LIVE.TABLE (column1, column2, column3)
SELECT DISTINCT ON (cloumn1) column1, column2, column3
FROM STAGE.TABLE
​ON CONFLICT ON CONSTRAINT live.table.pkey DO NOTHING

这很好,但我试图做的是在ON CONFLICT ON constraint语句中包含第二个约束。我尝试过下面的选项,但似乎对我不起作用。

INSERT INTO LIVE.TABLE (column1, column2, column3)
SELECT DISTINCT ON (cloumn1) column1, column2, column3
FROM STAGE.TABLE
​ON CONFLICT ON CONSTRAINT live.table.pkey, live.table.fkey1 DO NOTHING

如有任何建议,将不胜感激。

共有2个答案

越景天
2023-03-14

使用上面的列创建约束,如,

CONSTRAINT live_table_ukey UNIQUE(live.table.pkey, live.table.fkey1)

然后在约束冲突语句中使用此键。

许胡非
2023-03-14

似乎不能像这样附加两个约束名称

ON CONFLICT ON CONSTRAINT live.table.pkey, live.table.fkey1 DO NOTHING

但你可以

  • 关于冲突(col1,col2)什么都不做

  • 关于冲突,什么都不做

通过选择仲裁器索引,指定对冲突中的哪些冲突执行替代操作。要么执行唯一索引推断,要么显式命名约束。对于冲突不执行任何操作,可以选择指定冲突目标;省略时,将处理与所有可用约束(和唯一索引)的冲突。对于ON CONFLICT DO UPDATE,必须提供一个CONFLICT_目标。

https://www.postgresql.org/docs/current/sql-insert.html#SQL-在线冲突

 类似资料:
  • 问题内容: 在Derby服务器中,如何使用模式的系统表中的信息来创建select语句,以便检索每个表的约束名称? 问题答案: 相关手册是《Derby参考手册》。有许多版本可用:10.13是2017年4月的最新版本,但在2009年5月是10.3的最新版本。 原始答案 由于Derby的最新版本要求系统目录表的前缀在kiwicomb123的注释中引用了10.13 ,因此可以修改查询以使用显式的JOIN表

  • 主要内容:NOT NULL 约束,DEFAULT 约束,UNIQUE 约束,PRIMARY KEY 约束,CHECK 约束,删除约束约束是在表的数据列上强制执行的规则。这些是用来限制可以插入到表中的数据类型。这确保了数据库中数据的准确性和可靠性。 约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。 以下是在 SQLite 中常用的约束。 NOT NULL 约束:确保某列不能有 NULL 值。 DEFAULT 约束:当某列没有指定值时,为该列提供默认值。 UNIQUE 约束:确保某

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

  • 主要内容:创建约束,删除约束关于 SQL 约束,我们已经在《 RDBMS是什么》中进行了简要介绍,但是现在我们有必要再温习一下,并稍加深入。 约束(Constraint)是指表的数据列必须强行遵守的规则,这些规则用于限制插入表中的数据类型,这样能够确保每份数据的准确定和可靠性。 约束可以是列级别,也可以是表级别;列级约束仅作用于某一列,而表级约束则作用于整张表。 下面是 SQL 常用的一些约束: 约束 说明 NOT NULL

  • SQL 约束(Constraints) SQL 约束用于规定表中的数据规则。 如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。 SQL CREATE TABLE + CONSTRAINT 语法CREATE TABLE table_name ( column_name1 dat

  • 来自constraints模块的函数在优化过程中为网络的参数施加约束 惩罚项基于层进行惩罚,目前惩罚项的接口与层有关,但Dense, Conv1D, Conv2D, Conv3D具有共同的接口。 这些层通过一下关键字施加约束项 kernel_constraint:对主权重矩阵进行约束 bias_constraint:对偏置向量进行约束 from keras.constraints import m

  • 来自constraints模块的函数在优化过程中为网络的参数施加约束 惩罚项基于层进行惩罚,目前惩罚项的接口与层有关,但Dense, TimeDistributedDense, MaxoutDense, Covolution1D, Covolution2D, Convolution3D具有共同的接口。 这些层通过一下关键字施加约束项 W_constraint:对主权重矩阵进行约束 b_constr

  • 我正在将错误消息添加到登录屏幕。 虽然代码运行良好,并且执行我希望它执行的操作。它会在执行时导致约束错误。 以下是受影响的约束: 下面是导致errorView出现的函数。 如何在不破坏约束的情况下更改约束? 我尝试self.view.update约束()-但是什么也没有做。我还尝试在添加约束之前删除它们,但是仍然有一个错误。 任何帮助都将不胜感激! 编辑: 我找到了一个Objective-c解决方