MariaDB DEFAULT() 函数使用指南

在 MariaDB 中,DEFAULT() 是一个内置函数,返回给定的表列的默认值。

MariaDB DEFAULT() 语法

这里是 MariaDB DEFAULT() 函数的语法:

DEFAULT(column_name)

参数

column_name
必需的。 一个列名。

返回值

MariaDB DEFAULT() 函数返回指定的列的默认值。

如果指定的列没有定义默认值,此函数将报告一个错误。

MariaDB DEFAULT() 示例

为了演示 DEFAULT() 函数的用法,让我们使用如下语句创建一个表 test_default

CREATE TABLE test_default (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    default_int INT NOT NULL DEFAULT 0,
    default_date DATE NOT NULL DEFAULT (CURRENT_DATE)
);

这里,我们创建了一个表,它包含 4 个列,其中下面的 2 个列具有默认值:

  • default_int 的默认值为 0
  • default_date 的默认值由表达式 (CURRENT_DATE) 产生。

然后,让我们再插入几条数据:

INSERT INTO test_default (name, default_int)
VALUES ('Tom', 1);

让我们看一下表中的数据:

SELECT * FROM test_default;

输出:

+----+------+-------------+--------------+
| id | name | default_int | default_date |
+----+------+-------------+--------------+
|  1 | Tom  |           1 | 2023-02-03   |
+----+------+-------------+--------------+

现在,让我们使用 DEFAULT() 函数看一下 default_int 列的默认值:

SELECT DEFAULT(default_int) FROM test_default;

输出:

+----------------------+
| DEFAULT(default_int) |
+----------------------+
|                    0 |
+----------------------+

default_int 的默认值为 0,上面语句的输出也说明这一点。

让我们看一下在 name 列上调用 DEFAULT() 会发生什么:

SELECT DEFAULT(name) FROM test_default;

输出:

ERROR 1364 (HY000): Field 'name' doesn't have a default value

由于我们没有为 name 列定义默认值,因此 DEFAULT() 函数报告了一个错误。

让我们看一下在 default_date 列上调用 DEFAULT() 会发生什么:

SELECT DEFAULT(default_date) FROM test_default;

输出:

+-----------------------+
| DEFAULT(default_date) |
+-----------------------+
| 2023-02-03            |
+-----------------------+

结论

在 MariaDB 中,DEFAULT() 是一个内置函数,返回给定的表列的默认值。