问题:
在一个定义了默认值的列插入数据,并且需要不管该列的默认值是什么,都将该列值设为NULL。考虑一下下面的表:

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

希望插入一行, 其中id值为NULL

解决方案:
可以在值列表中明确地指定NULL值:

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

讨论

并不是所有人都知道可以在insert语句的值列表中明确指定NULL值。人们通常的做法是,如果在插入操作时不需要对某列指定值,只是将该列从插入列表和值列表中去掉。

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

在上面的语句中没有指定id值。许多人可能认为列没有被指定值时,应当被赋予空值。但是,如果该列在创建的时候被指定了默认值,结果就是在执行insert指令时,id字段的值被赋予0(默认值)。如果想要将某列的值设定为null。则就需要指定该列值为null,而不管该列是否有默认值。

相关文章:

  • 2021-09-16
  • 2021-11-17
  • 2021-06-09
  • 2022-12-23
  • 2022-03-03
  • 2021-09-13
  • 2021-11-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
  • 2022-12-23
  • 2021-10-06
  • 2022-12-23
  • 2021-11-08
相关资源
相似解决方案