我有一个非常简单的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实现此目标吗?