【发布时间】:2021-11-16 19:09:32
【问题描述】:
我希望能够使用 network_id 或用户名找到值。 然而,下面的 sintax 给出了多个主键的错误(如预期的那样)。
CREATE TABLE Player(
network_id TEXT not null,
username varchar2(50) not null,
value INTEGER,
CONSTRAINT player_pk1 PRIMARY KEY (username),
CONSTRAINT player_pk2 PRIMARY KEY (network_id)
);
有没有办法在 Sqlite 中做到这一点?
【问题讨论】:
-
表只能有一个主键
-
@Sergey,我知道,我只是想知道如何在 Sql 范围内完成类似的事情
-
对不起,“使用network_id或用户名查找值”与主键无关。
-
您根本不需要钥匙。使用
select * from player where network_id = 123,您可以通过网络ID 找到行,使用select * from player where username = 'Mr. X',您可以通过用户名找到行。您可以提供加快此类查询的索引。 SQLite 自动为具有唯一约束的主键和列提供此类索引,但您也可以自己创建它们。 -
network_id 在您的表中是否应该是唯一的(即这实际上是玩家 ID)还是多个玩家可以拥有相同的网络 ID?