在 H2 数据库中自动生成主键作为当前日期时间

Auto generate primary key as current date time in H2 database

我必须在 H2 中创建一个 table,主键在 yyyyMMddHHmmssSSS format.So 中,对于每次插入,它都会自动采用上述格式的当前日期时间。

CREATE TABLE TEST_TABLE(ID BIGINT DEFAULT CURRENT_TIMESTAMP() PRIMARY KEY, NAME VARCHAR(255));

问题是 CURRENT_TIMESTAMP() 格式是 yyyy-MM-dd HH:mm:ss.SSS。我怎样才能得到它所需的格式。

您可以在 H2 控制台中尝试此操作:

call formatdatetime(now(),'yyyyMMddHHmmssSSS');

这将为您提供格式正确的字符串。现在您需要将其转换为 bigint。

call cast(formatdatetime(now(),'yyyyMMddHHmmssSSS') as bigint);

最后一步:相应地更改您的 SQL...

CREATE TABLE TEST_TABLE(
  ID BIGINT DEFAULT CAST(FORMATDATETIME(CURRENT_TIMESTAMP(), 'yyyyMMddHHmmssSSS') AS BIGINT) PRIMARY KEY,
  NAME VARCHAR(255)
);

在 H2 1.3 和 1.4 上测试。

注意事项:请使用事务和space您的插入...