Ignite 点火器中的复合键

Ignite 点火器中的复合键,ignite,gridgain,sqlline,Ignite,Gridgain,Sqlline,我通过将两列定义为主键(PK)创建了Ignite表。当我试图插入数据时,它失败了,出现了重复键错误。在类型和id列上定义的主键 0: jdbc:ignite:thin://node1.example.com> insert into balance (type,amount,currency,asof,id) values ('Current Balance',20000.1,'INR','2020-04-07 00:00:00.000','1009230183926'); 1 row a

我通过将两列定义为主键(PK)创建了Ignite表。当我试图插入数据时,它失败了,出现了重复键错误。在类型和id列上定义的主键

0: jdbc:ignite:thin://node1.example.com> insert into balance (type,amount,currency,asof,id) values ('Current Balance',20000.1,'INR','2020-04-07 00:00:00.000','1009230183926');
1 row affected (0.036 seconds)

0: jdbc:ignite:thin://node1.example.com> insert into balance (type,amount,currency,asof,id) values ('Current Balance',30000,'INR','2020-04-07 00:00:00.000','1009230183926');
Error: Duplicate key during INSERT [key=SQL_PUBLIC_BALANCE_4791140f_63cb_4663_8c02_58f14073ff0c_KEY [idHash=1321771843, hash=-1614321497, TYPE=Current Balance, ID=1009230183926]] (state=23000,code=4001)
java.sql.SQLException: Duplicate key during INSERT [key=SQL_PUBLIC_BALANCE_4791140f_63cb_4663_8c02_58f14073ff0c_KEY [idHash=1321771843, hash=-1614321497, TYPE=Current Balance, ID=1009230183926]]

Ignite是否像其他RDBMS一样支持复合密钥?如何解决此问题。

能否显示CREATE TABLE语句或缓存cfg?您使用的是缓存API还是仅与jdbc驱动程序有关?如果PK由
类型
id
组成,那么行为是正确的-您提供的两行中的值确实相同(“当前余额”和“1009230183926”)。您确定有问题吗?P.S.复合主键受Ignite支持,并且您似乎正确定义了它。打印的密钥包含
type
id
列:
key=SQL\u PUBLIC\u BALANCE\u 4791140f\u 63cb\u 4663\u 8c02\u 58f14073ff0c\u密钥[idHash=1321771843,hash=-1614321497,type=Current BALANCE,id=1009230183926]
@Alexandr Shapkin@Valentin Kulichenko我用错误的方式理解了这些概念。我现在明白了。谢谢你的帮助。你能展示你的CREATETABLE语句或缓存cfg吗?您使用的是缓存API还是仅与jdbc驱动程序有关?如果PK由
类型
id
组成,那么行为是正确的-您提供的两行中的值确实相同(“当前余额”和“1009230183926”)。您确定有问题吗?P.S.复合主键受Ignite支持,并且您似乎正确定义了它。打印的密钥包含
type
id
列:
key=SQL\u PUBLIC\u BALANCE\u 4791140f\u 63cb\u 4663\u 8c02\u 58f14073ff0c\u密钥[idHash=1321771843,hash=-1614321497,type=Current BALANCE,id=1009230183926]
@Alexandr Shapkin@Valentin Kulichenko我用错误的方式理解了这些概念。我现在明白了。谢谢你的帮助。