2016-10-25 3 views
0

Я имею в виду ADD ОГРАНИЧЕНИЙ к моей БД таблицы как в примере из http://www.w3schools.com/sql/sql_unique.aspКак поддерживать ADD CONSTRAINTS в SQLite?

ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName) 

Однако обнаружить из https://www.sqlite.org/omitted.html, ADD CONSTRAINT не поддерживается SQLite. Какой у меня вариант (fyi, я развиваюсь в Android и имею только SQLite).

+0

'создать уникальный индекс'? –

ответ

1

Вместо ограничения уникальности, просто добавьте уникальный индекс:

CREATE UNIQUE INDEX unq_persons_pid_lastname ON PERSONS(P_Id, LastName); 

Любопытно, что вы бы таблица с именем Persons и P_Id не уже быть уникальным в таблице (будучи первичным ключ).

+0

Привет @GordonLinoff, спасибо! Как насчет 'ALTER TABLE mytable CONSTRAINT unique_hash UNIQUE (хеш) ON CONFLICT REPLACE'. Может ли это использовать 'CREATE UNIQUE INDEX'? – Elye

+0

Поведение будет отличаться. Уникальный индекс предотвратит вставку новой строки. «On conflict replace» добавит новую строку, заменив предыдущую строку. –

+0

Я вижу. Я разместил свой вопрос в http://stackoverflow.com/q/40239021/3286489, если у вас есть идея о том, как обращаться с этим, что очень поможет. Благодаря!! – Elye