多级主键?

时间:2019-01-02 17:38:42

标签: sqlite

我有一个非常简单的users表,如下所示:

CREATE TABLE users (
    host VARCHAR NOT NULL,
    username VARCHAR,
    password VARCHAR NOT NULL,
    PRIMARY KEY (host, username)
);

就PK而言,密码通常并不重要。但是,username有时可以为NULL(因此缺少NOT NULL),这意味着仅通过密码来区分特定主机就可以区分用户。在那种情况下,我也希望密码也成为PK的一部分。

我最初的尝试是

PRIMARY KEY (host, coalesce(username, password))

但这显然不是有效的语法,至少在SQLite3中不是。

有什么方法可以使用纯SQL实现此目标吗?

0 个答案:

没有答案