我reading
data
来自Sybase ASE 15.5
database
和inserting
的一个表data
返回另一个目标Sybase ASE 15.5
database
。所有source
和destination
数据都匹配而不是timestamp
列。
正如我对timestamp
列所了解的那样,它会自动更新:
每次插入或更新包含时间戳列的行时, timestamp列会自动更新。一张桌子只能有 timestamp数据类型的一列。名为timestamp的列将 自动拥有系统数据类型时间戳。
因此,当我将timestamp
数据恢复到目标数据库时,它与实际数据库不匹配。
这是源表
的屏幕以下是目的地表
的简短屏幕如何恢复timestamp列的确切值?
仅供参考:
我正在使用Apache Meta-model
从源表中查询数据并将该数据还原回目标数据库。
As you can see timestamp is an array of bytes so I am extracting data as an array of bytes and restore it again as array of bytes but the value timestamp column is being changed when restore
。
答案 0 :(得分:0)
你做不到。时间戳列将始终更新;这些列包含的值是“数据库时间戳”,它是ASE中事务机制的基础,并且对于每个插入或更新的行或数据库中的任何其他更改都会递增。 然而,“时间戳”这个名称具有误导性,因为它与现实世界的时间完全无关。它只是一个6字节的计数器,只会在数据库的生命周期内增加。
如果您想在这些列中使用实际时间,请使用数据类型“datetime”或“bigdatetime”。