我使用HSQLDB作为数据库引擎。我想创建一个具有复合主键的表。我使用此代码:具有自动增量部分的复合主键
CREATE TABLE sample_table (hash VARCHAR(20),
id INTEGER, data VARCHAR(256), PRIMARY KEY(hash, id))
但我需要id是autoincremental。我的意思是,当我想有这样的事情:
哈希ID数据
ABC 1 data_string_1 ABC 2 data_string_2 EFG 1 some_string_1 ABC 3 some_data_again EFG 2 last_string
如果我使用这个代码:
CREATE TABLE sample_table (hash VARCHAR(20),
id INTEGER IDENTITY, data VARCHAR(256), PRIMARY KEY(hash, id))
(所以我让id a ñ自动增加的主键)抛出一个异常:
java.sql.SQLSyntaxErrorException:主键已经存在
我能做些什么来解决这个问题? 对我来说,使用多个查询与COUNT(ID),然后增加此计数,然后插入新的价值并不好,我想HSQLDB做自动
很好的回答,但你可以自用的默认身份,而不是身份。完整的定义并不意味着主键。 – fredt 2013-05-09 23:02:34
谢谢,它工作正常! @fredt,也谢谢你,看起来更简单 – Ivan 2013-05-10 09:29:01
@fredt:谢谢你解决这个问题。这从手册来看对我来说并不明显。 – 2013-05-10 09:40:25