在 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您的插入...
我必须在 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您的插入...