创建表时,我想设置具有今天日期的char(12)字段的默认值。例如,' 2016-08-25'
如何在Informix中执行此操作?
答案 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
。