【发布时间】:2012-10-09 13:34:09
【问题描述】:
在我的表中,我有一列 MODIFIED 类型为 TIMESTAMP。 我想在行更新时自动更新此列
我可以将它用于新列
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
【问题讨论】:
-
您是否收到错误消息?如果有,是什么?
-
我认为考虑到参考文档的布局方式,您可能只能添加列(即,row-change-timestamp 部分位于 @ 987654324@,而不是
ALTER COLUMN)。添加新列、移动数据(如有必要)、然后删除旧列是否有任何问题? -
@Clockwork-Muse 它只是添加列、移动数据、删除列、使用新配置再次添加列、移动数据并删除临时列并抛出几个重组的过程至少在 9.7 中我可以重命名列,但我使用的是 9.5
-
创建一个新表,然后用新列将数据放入其中,然后交换表?
标签: sql db2 timestamp last-modified