📜  PostgreSQL – 检查约束(1)

📅  最后修改于: 2023-12-03 15:03:49.673000             🧑  作者: Mango

PostgreSQL - 检查约束

在 PostgreSQL 中,检查约束是一种用于限制插入、更新和删除数据的约束条件。它们可以用来限制数据的特定值,例如只允许在特定范围内的数值、日期或字符串。

创建检查约束

可以通过在 CREATE TABLE 语句中添加 CHECK 约束来定义检查约束。例如:

CREATE TABLE example_table (
   id serial PRIMARY KEY,
   name varchar(50),
   age integer CHECK (age > 0),
   email varchar(255) CHECK (email ~* '^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$')
);

此示例创建一个名为 example_table 的表,并添加了两个检查约束。第一个约束限制 age 的值必须大于 0。第二个约束限制 email 的值必须是有效的电子邮件地址。

修改检查约束

要修改检查约束,可以使用 ALTER TABLE 命令和 CHECK 约束的名称。例如,要将上面的 email 约束重命名为 valid_email

ALTER TABLE example_table
   RENAME CONSTRAINT example_table_email_check TO valid_email;

要修改检查约束的条件,使用 ALTER TABLE 命令和 CHECK 约束的名称。例如,要将 email 约束从一个电子邮件地址改为一个 URL:

ALTER TABLE example_table
   ALTER CONSTRAINT valid_email
   USING email ~* '^https?:\/\/[^\s/$.?#].[^\s]*$';
删除检查约束

要删除检查约束,可以使用 ALTER TABLE 命令和 CHECK 约束的名称。例如,要删除上面的 email 约束:

ALTER TABLE example_table
   DROP CONSTRAINT valid_email;
总结

检查约束提供了一种强大的工具,可以限制插入、更新和删除数据的范围和规则。这使得 PostgreSQL 变得更健壮,更容易维护。通过使用 CHECK 约束,可确保数据在规定的条件下呈现,避免出现意外错误。