MYSQL ENUM 设置默认值

在MySQL数据库中,ENUM是一种用于定义枚举类型的数据类型。枚举类型允许在一组预定义的值中选择一个值。ENUM类型的列只能存储列表中的一个值,或者如果没有匹配的值,则存储一个特殊的空值。

通过设置ENUM列的默认值,我们可以在插入新记录时为该列提供一个默认值。这篇文章将向您展示如何在MySQL中设置ENUM列的默认值,并提供一些代码示例。

创建表

首先,我们需要创建一个包含ENUM列的表。假设我们要创建一个名为users的表,其中包含一个status列,该列的类型为ENUM,并有三个可能的值:activeinactivepending

以下是创建users表的SQL语句:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    status ENUM('active', 'inactive', 'pending') DEFAULT 'active'
);

在上面的语句中,我们使用ENUM('active', 'inactive', 'pending')定义了status列的类型。我们还使用DEFAULT 'active'status列设置了默认值为active

插入记录

现在,我们可以向users表插入一些记录并看到默认值的效果。以下是插入记录的示例:

INSERT INTO users (name) VALUES ('John');
INSERT INTO users (name, status) VALUES ('Jane', 'inactive');
INSERT INTO users (name, status) VALUES ('Bob', 'pending');

在上面的示例中,我们没有为status列提供值。因此,当插入记录时,status列将采用默认值active

检索记录

我们可以使用SELECT语句检索users表中的记录,并查看status列的值。以下是示例查询:

SELECT * FROM users;

此查询将返回users表中的所有记录,包括每个记录的idnamestatus列的值。

修改默认值

如果需要修改ENUM列的默认值,我们可以使用ALTER TABLE语句。以下是修改users表的status列默认值的示例:

ALTER TABLE users ALTER COLUMN status SET DEFAULT 'inactive';

在上面的示例中,我们使用ALTER COLUMN子句将status列的默认值修改为inactive

总结

在本文中,我们学习了如何在MySQL中设置ENUM列的默认值。我们创建了一个包含ENUM列的表,并使用默认值来插入记录。我们还学习了如何修改ENUM列的默认值。

ENUM列的默认值非常有用,因为它允许我们在插入记录时为列提供一个默认值。这对于在不提供具体值时确保数据库表的数据完整性非常有帮助。

希望本文能够帮助您更好地理解和使用MySQL中ENUM列的默认值。

附录:代码示例

以下是本文中使用的代码示例:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    status ENUM('active', 'inactive', 'pending') DEFAULT 'active'
);

INSERT INTO users (name) VALUES ('John');
INSERT INTO users (name, status) VALUES ('Jane', 'inactive');
INSERT INTO users (name, status) VALUES ('Bob', 'pending');

SELECT * FROM users;

ALTER TABLE users ALTER COLUMN status SET DEFAULT 'inactive';

附录:饼状图

以下是本文提到的饼状图,使用Markdown语法和Mermaid语法的pie标识:

pie
    title ENUM列的值分布
    "active": 60
    "inactive": 30
    "pending": 10

以上代码将生成一个饼状图,显示ENUM列的值分布,其中“active”占60%,“inactive”占30%,“pending”占10%。

希望这个饼状图能够更直观地展示ENUM列值的分布情况。

附录:旅行图

以下是本文提到的旅行图,使用Markdown语法和Mermaid语法的journey标识:

journey
    title 用户注册过程
    section 注册