SQL 使用Null覆盖默认值

SQL 使用Null覆盖默认值,你想要插入一列,该列有默认值,但你想将其设置为 Null 而不是默认值。考虑如下的表。

SQL 使用Null覆盖默认值 问题描述

你想要插入一列,该列有默认值,但你想将其设置为 Null 而不是默认值。考虑如下的表。

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

你希望为 ID 列插入 Null

SQL 使用Null覆盖默认值 解决方案

VALUES 列表里显式地指定 Null

insert into d (id, foo) values (null, 'Brighten')

SQL 使用Null覆盖默认值 扩展知识

有些人不知道 INSERT 语句的 VALUES 列表可以显式指定 Null。一个典型的例子可以证明这一点,当不想为某一列插入特定值的时候,有些人会把该列从 VALUES 列表里去掉。

insert into d (foo) values ('Brighten')

在这里,并没有指定 ID 列的值。许多人可能以为 ID 列会被插入 Null,但是因为创建表的时候预设了默认值,所以上述 INSERT 语句执行后,ID 列会被设置为 0(默认值)。通过明确指定某字段为 Null,即使该字段有预设的默认值也能为其插入 Null

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程