在我的表中,我有一个类型为TIMESTAMP的MODIFIED列。 我希望在更新行时自动更新此列
我可以将它用于新列
alter table my_table add column last_updated timestamp not null
generated by default for each row on update as row change timestamp
但是我不能用它来编辑现有的列来自动进行更新
alter table my_table alter column modified set data type timestamp
not null generated by default for each row on update as row change timestamp
我是否正确使用了alter?
错误消息是
Error: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=alter table my_table alter column modified;BEGIN-OF-STATEMENT;<values>, DRIVER=3.50.152
SQLState: 42601
ErrorCode: -104
答案 0 :(得分:1)
在这里找到一篇文章 http://ibmsystemsmag.blogs.com/db2utor/2008/01/automate-row-ch.html
基本上它说
答案 1 :(得分:0)
一旦列存在,您将使用稍微不同的语法来更改数据类型和属性:
alter table my_table alter column my_column set generated by default ...
答案 2 :(得分:0)
您可以使用以下查询添加带有时间戳的新列。
ALTER TABLE TABLE_NAME
add column UPDATED_DATE_TIME TIMESTAMP GENERATED ALWAYS FOR EACH ROW
ON UPDATE AS ROW CHANGE TIMESTAMP NOT NULL;