CREATE TABLE Permission ( permissionID INTEGER PRIMARY KEY UNIQUE, user INTEGER location INTEGER );
我不想拥有用户或位置,UNIQUE因为我可以有多行用户包含相同数据,或者有多行位置包含相同数据。我只想避免用户和位置都具有一定的价值,因为该行重复了许多次。
UNIQUE
例如:这还可以
permissionID user location -------------------------- 1 1 2 2 2 2 3 2 1
但这不行:
permissionID user location -------------------------- 1 1 2 2 1 2
因为已经存在其中user = 1和location = 2的行。
如何避免重复?
声明对(用户,位置)的唯一约束。
CREATE TABLE Permission ( permissionID integer primary key, user integer not null, location integer not null, unique (user, location) ); sqlite>插入Permission(用户,位置)值(1、2); sqlite>插入Permission(用户,位置)值(1、2); 错误:唯一约束失败:Permission.user,Permission.location