Informix将字符串列的默认值设置为当前日期

时间:2016-08-25 22:58:14

标签: informix

创建表时,我想设置具有今天日期的char(12)字段的默认值。例如,' 2016-08-25'

如何在Informix中执行此操作?

1 个答案:

答案 0 :(得分:3)

如果您设法找到DEFAULT clause of CREATE TABLE上的文档,那么您会看到可以作为默认值的选项非常有限。

此外,对允许的内容存在基于类型的限制:

CREATE TABLE x(y CHAR(12) NOT NULL DEFAULT TODAY);

这会产生语义错误:

SQL -591: Invalid default value for column/variable (y).

具有扩展的含义:

  

指定的默认值是错误的类型,或者对于列来说太长   或SPL例程变量。

     

要为列指定有效的默认值,请使用a中的DEFAULT子句   CREATE TABLE语句。为。中的变量指定有效的默认值   SPL例程,在DEFINE语句中使用DEFAULT子句。

基本上,您无法为CHAR类型列创建TODAY的默认值。

使用DATE列(可以有效地应用默认的TODAY)会更加简单,并在必要时将该值选为字符串。有一些小的细节,如区域设置和数据显示 - 您可能会发现DATETIME YEAR TO DAY比DATE更好,因为它对值强制执行ISO 8601样式表示法2016-08-25