CREATE TABLE Permission (
permissionID INTEGER PRIMARY KEY UNIQUE,
user INTEGER
location INTEGER
);
I don\'t want to have
First option is creating a unique constraint
on user
and location
columns which will avoid duplicates.
Create unique index permission_user_location on permission (user,location);
Else if you already have duplicate rows in table you need to delete the duplicate rows and create unique constraint
To remove duplicate rows use this query
DELETE
FROM Permission
WHERE NOT EXISTS
(
select 1 from
(
select min(permissionID) as permissionID, user, location
From Permission A
Group by user, location
) B
Where B.permissionID = Permission.permissionID
AND B.user = Permission.User
AND B.location = Permission.location
)
CREATE TABLE Permission (
permissionID INTEGER PRIMARY KEY UNIQUE,
user INTEGER,
location INTEGER
);
CREATE UNIQUE INDEX user_location ON Permission (user,location);
Declare a unique constraint on (user, location).
CREATE TABLE Permission (
permissionID integer primary key,
user integer not null,
location integer not null,
unique (user, location)
);
sqlite> insert into Permission (user, location) values (1, 2); sqlite> insert into Permission (user, location) values (1, 2); Error: UNIQUE constraint failed: Permission.user, Permission.location