问题标签 [exclusion-constraint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
149 浏览

python - 带有 ManyToManyField 的 Django Postgres 排除约束

我想将 Django 排除约束与 ManyToManyField 一起使用。不幸的是,到目前为止,我的努力都是徒劳的。这是我的约会模式:

从 django.contrib.postgres.constraints 导入 ExclusionConstraint 从 django.contrib.postgres.fields 导入 DateTimeRangeField, RangeOperators

不幸的是,这不起作用。引用 Doctor 的第一个约束完美运行,但第二个约束在迁移期间给了我这个错误:

这让我困扰了很长一段时间。任何帮助表示赞赏。

0 投票
2 回答
38 浏览

postgresql - Postgres 对插入/更新的排除约束

我有一个这样定义的表

我将如何定义一个排除约束,这样只有一行foo具有特定的bar_id才能设置approved为 true?

例如以下数据:

我将能够将第 3 行设置approved为 true,因为没有其他行foo_id3 具有 true 以获得批准。

但是,将第 2 行更新approved为 true 会失败,因为第 1 行也有foo_id1 并且已经被批准。

0 投票
0 回答
32 浏览

postgresql - 表上的条件唯一约束?

我有这张桌子:

如何添加约束以确保将唯一行定义为唯一pe“标识符”AND "primary"= 'Y'?换句话说,一个客户行的每个数字"primary"只能有一个标记为“Y” 。pe但是这个约束必须允许多个"primary"= 'N' 客户具有相同的pe数量。

0 投票
2 回答
39 浏览

sql - 约束一组行

举个简单的例子,假设我有一张list桌子和一张list_entry桌子:

我现在想添加以下约束:具有相同的所有列表条目list_id都具有position形成从 开始的连续序列的条目1

我不知道怎么做。

我首先想到了EXCLUDE约束,但这似乎无济于事。

当然可以创建一个触发器,但如果可能的话,我宁愿不这样做。

0 投票
0 回答
16 浏览

mysql - 从 Workbench 中的 SQL 查询中排除本地 csv

我不知道这是否可能,或者这是一个愚蠢的问题,所以请随时重新指导我的努力。

我有一个从数据库中获取事务数据的 SQL 查询。其中一些位置是需要排除的测试位置。不幸的是,该标志不在数据库中(还)。所以我有一个本地存储的 CSV 需要排除的测试位置。

目前,我正在从查询中导出数据,然后将其排除在 excel 中。但是最好让查询从一开始就排除数据。

我可以做的一个选择是编写一个基于 csv 的长查询,其中包含一长串

并将其包含在查询中。我认为我可以相对容易地在 excel 中生成它。

但在我这样做之前,我想知道是否有更直接的方法?

我可以有一个工作台 SQL 查询来排除/包含特定字段中的某些值吗?

0 投票
1 回答
49 浏览

postgresql - 如何处理具有排除约束的表的更新?

我有一张表跟踪带有排除约束的酒店预订,如下所示。

目前,我允许客人更新他们的预订。因此,如果 guest_id 1 将他的预订从 3 天预订更改为从 2010-01-03、2010-01-03 的单日预订,如果我运行此更新语句,postgres 将由于重叠约束而阻止更新:

update reservation set from_ts = '2021-01-03 00:00:00', to_ts='2021-01-10 23:59:00', during = '[2021-01-03 00:00:00, 2021-01-10 23:59:00]' where id = 1

那你如何允许这个更新呢?您是否必须保持预订 id 相同,并删除其他人?

** 注意:我实际上是每行存储一天,因为我还有其他属性可以每天跟踪**