【发布时间】:2020-10-15 12:49:48
【问题描述】:
是否可以使用 alter table 向现有表添加自动生成的主键列(时间戳)?
类似这样的东西,但它不能编译
ALTER TABLE DB2ADMIN.xxxyyyy ADD COLUMN ID TIMESTAMP NOT NULL WITH DEFAULT timestamp(generate_unique())@
准备期间出错 42601(-104)[IBM][CLI Driver][DB2/AIX64] SQL0104N 在“OT NULL WITH DEFAULT”之后发现了意外的标记“时间戳”。预期的标记可能包括:“CHECK”。 SQLSTATE=42601
【问题讨论】:
-
TIMESTAMP是保留字。用双引号括起来,如:ALTER TABLE DB2ADMIN.xxxyyyy ADD COLUMN ID "TIMESTAMP" NOT NULL WITH DEFAULT timestamp(generate_unique())@ -
不过,我认为这是个坏主意。 PK 不会真正代表时间戳值,而是基于时间戳的值......不完全相同。在重负载下,这些值可能会稍微偏离日期/时间。