PostgreSQL 如何创建带有默认值的枚举字段
在本文中,我们将介绍如何在 PostgreSQL 数据库中创建一个带有默认值的枚举字段。
阅读更多:PostgreSQL 教程
PostgreSQL 枚举类型简介
在 PostgreSQL 中,枚举类型是一种特殊的数据类型,它将一个字段的值限定在一组事先定义好的固定值的集合中。枚举类型可以让我们更好地控制和管理数据的取值范围,避免传入无效的数据。
创建枚举类型
首先,我们需要先创建一个枚举类型。我们可以使用 CREATE TYPE 命令来创建一个新的枚举类型,并指定其固定的取值范围。
CREATE TYPE color AS ENUM ('red', 'green', 'blue');
上述代码创建了一个名为 color 的枚举类型,它包含了三个取值:’red’、’green’ 和 ‘blue’。
创建带有默认值的枚举字段
接下来,我们可以使用刚刚创建的枚举类型来定义一个带有默认值的枚举字段。我们可以在创建表格时指定该字段的默认值。
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
color color DEFAULT 'red'
);
上述代码创建了一个名为 products 的表格,其中包含了一个名为 color 的枚举字段。我们可以看到在字段的定义中使用了 DEFAULT 关键字来指定默认值为 ‘red’,即如果插入数据时没有指定该字段的值,它将会自动被设置为 ‘red’。
示例说明
为了更好地理解如何创建带有默认值的枚举字段,我们来看一个更具体的示例。
假设我们正在创建一个电商网站的数据库,并且需要一个枚举字段来表示商品的状态。我们先创建一个枚举类型 status,包含以下取值:’pending’、’approved’ 和 ‘rejected’。
CREATE TYPE status AS ENUM ('pending', 'approved', 'rejected');
随后,我们创建一个 products 表格,并为其添加一个名为 status 的枚举字段,该字段的默认值为 ‘pending’。
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
status status DEFAULT 'pending'
);
现在,当我们向 products 表格插入新的商品记录时,如果没有指定 status 字段的值,它将会自动被设置为 ‘pending’。
-- 插入一条商品记录,未指定状态,状态默认为 'pending'
INSERT INTO products (name) VALUES ('iPhone 13');
-- 插入一条商品记录,指定状态为 'approved'
INSERT INTO products (name, status) VALUES ('MacBook Pro', 'approved');
总结
本文介绍了如何在 PostgreSQL 数据库中创建一个带有默认值的枚举字段。通过使用枚举类型和指定默认值,我们可以更好地控制和管理字段的取值范围,避免传入无效的数据。希望本文对你理解和使用 PostgreSQL 数据库中的枚举类型有所帮助。
极客教程