PostgreSQL 中的排除约束是什么?Microsoft SQL Server 中的相应术语(和示例 SQL 脚本)是什么?

nhu*_*uvy 3 sql sql-server postgresql exclusion-constraint

我读了一本书

在此输入图像描述

排除约束

CREATE TABLE movies
(
    Title TEXT,
    Copies INTEGER
);

ALTER TABLE movies ADD EXCLUDE (title WITH=, copies WITH=);
Run Code Online (Sandbox Code Playgroud)

排除约束是什么意思?Microsoft SQL Server 中的相应术语(和示例 SQL 脚本)是什么?

GMB*_*GMB 6

排除约束是什么意思?

这是一种特殊类型的约束,被定义为对表列的一系列比较。它保证不能有两个不同的行的比较都为真。

在本书中提供的(过于简单的)示例中,约束阻止两个不同的行具有相同的title 相同的copies

排除约束非常强大;它们具有灵活的语法,可以适应比您书中演示的更复杂的情况。一个典型的示例是确保给定一个具有两个时间戳列的表,各行之间的时间戳范围不存在重叠。

Microsoft SQL Server 中的相应术语(和示例 SQL 脚本)是什么?

我认为 SQL Server 中不存在这样的功能。它具有检查约束,但不提供与 Postgres 排除约束相同的功能范围。

  • @DoNhuVy:对于您的示例,您不能有两行具有相同的“标题”和“副本”。允许具有相同“标题”和不同“副本”的行,以及具有相同“副本”和不同“标题”的行。 (2认同)