SQL 插入默认值

SQL 插入默认值,可以定义表的某些列的默认值。你想在插入一行的时候使用预设的默认值,而不是指定的值。考虑下面的表。

SQL 插入默认值 问题描述

可以定义表的某些列的默认值。你想在插入一行的时候使用预设的默认值,而不是指定的值。考虑下面的表。

create table D (id integer default 0)

你希望插入 0,并且不想显式地在 INSERT 语句的 VALUES 列表里指定 0。你只希望显式地插入默认值,而不管预设的默认值是什么。

SQL 插入默认值 解决方案

所有数据库都支持使用 DEFAULT 关键字来显式地为某一列指定默认值,部分数据库还提供了其他方法来解决这一问题。
DEFAULT 关键字的使用示例如下。

insert into D values (default)

如果你没有为所有列都插入数值,则你需要直接指定列名。

insert into D (id) values (default)

Oracle 8i 数据库及更早的版本不支持 DEFAULT 关键字。因此,对于 Oracle 9i 之前的版本,没有办法为某一列显式地插入默认值。
如果所有列都预设了默认值,MySQL 允许指定一个空白的 VALUES 列表。

insert into D values ()

这样就可以为所有列创建预设的默认值。
PostgreSQLSQL Server 支持 DEFAULT VALUES 子句。

DEFAULT VALUES 子句。

DEFAULT VALUES 子句会使得所有字段均取默认值。

SQL 插入默认值 扩展知识

在创建表的过程中,DEFAULT 关键字会按照表定义中指定的默认值为特定的列插入一个值。DEFAULT 关键字适用于所有的数据库管理系统。
如果预先为表的每一列都定义了默认值(比如,本实例中的 D 表),则 MySQLPostgreSQL 和 SQL Server 用户还有其他的选择。为了创建一行全是默认值的记录,你可以指定一个空白的 VALUES 列表(适用于 MySQL),或者使用 DEFAULT VALUES 子句(适用于 PostgreSQL 和 SQL Server)。否则,你就需要为表的每一列都指定 DEFAULT 关键字。
对于那些既有默认值列又有非默认值列的表,只要不把预设了默认值的列写入 INSERT 列表,就能方便地为它们插入默认值。也就是说,在这里你不需要使用 DEFAULT 关键字。假设 D 表还有一列,而该列没有预设的默认值。

create table D (id integer default 0, foo varchar(10))

INSERT 列表里只指定 FOO 列,就可以为 ID 列插入默认值。

insert into D (name) values ('Bar')

上述语句会产生一行 ID 列为 0FOO 列为 Bar 的数据。ID 列会被设为默认值,因为我们没有为它指定其他的值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程