我有一个sybase 15 DB,对于我的一个表,我想将列默认设置为行插入的当前日期/时间。这可能吗?
在sybase文本中,如下所示:
ALTER TABLE sales_order
MODIFY order_date DEFAULT CURRENT DATE
在我的数据库中,由于无法识别CURRENT DATE
,因此无法执行任何操作。
答案 0 :(得分:8)
使用getDate()
是一种有效的解决方案,您必须遇到语法错误。试试这样:
create table test_tbl (
date_data DATETIME default getDate() NOT NULL
)
答案 1 :(得分:3)
尝试使用getDate()代替
答案 2 :(得分:2)
... DEFAULT GETDATE()
是正确的。这个案子无关紧要; mixed case可能表示Java方法,但它是一个直接的TSQL函数。如果您需要进一步的帮助,请发布确切的错误消息。
此外,ALTER TABLE方法为 future INSERTS设置默认值;如果您希望更改现有数据,则需要UPDATE(适用于小表)或卸载/重新加载表(需要更大)。
观察NULL / NOT NULL:你不想在不理解的情况下改变它。同样,现有/未来的问题需要解决。 NOT NULL可防止将NULL显式传递为INSERT VALUE。
答案 3 :(得分:1)
CURRENT_DATE是一种未被普遍采用的SQL标准。 如其他地方所述,应该使用getdate()T-SQL函数。