2013-10-11 3 views
1

У меня есть таблица, которая имеет первичный ключ TEXTКак изменить первичный ключ записи в sqlite?

CREATE TABLE tbl1{ 
    a1 TEXT PRIMARY KEY, 
    ... 
); 

(a1 столбец внешнего ключа в другой таблице)

Как я могу изменить значения a1?

Если я

UPDATE tbl1 SET a1 =? ГДЕ a1 =?

Я получаю ошибку нарушения Ограничить

+0

Почему, по-вашему, вам нужно изменить первичный ключ? –

+0

a1 представляет URL-адрес, который я использую для отображения записи, и я хочу, чтобы она была изменчивой. – thelolcat

ответ

3

Вы никогда не должны изменять первичные ключи; было бы лучше использовать INTEGER PRIMARY KEY и иметь фактический URL-адрес в качестве обычного столбца данных.

Если вы действительно хотите изменить ключ, являющийся целью внешнего ключа, вы должны объявить ограничение внешнего ключа как deferred, чтобы вы могли отрегулировать значение внешнего ключа в той же транзакции.

+0

k спасибо, что я добавлю столбец id и использую его для внешнего ключа – thelolcat

Смежные вопросы