У меня действительно странная проблема с маленькой базой данных.
таблица содержит около 400 записей, а ключ - это два столбца, которые содержат два хеша md5.
мой стол выглядит так:
create table if not exists documents (id NOT NULL, pid NOT NULL, path NOT NULL, title, version, author, department, retention DEFAULT 3, date,comment TEXT,PRIMARY KEY(id, pid));
теперь у меня есть, например, эта строка данных в базе данных:
sqlite> select oid,* from documents where oid = 11;
rowid|id|pid|path|title|version|author|department|retention|date|comment|publisher|record|recordretention|indoklenk
11|7408cf58dbf8985d8532b719edcd08b8|98b482dc01793d0dafa02a644fc425bd|Path\To\A\File|Checkliste.doc||||3|2012-01-23||Foobar||3|1
и теперь я хочу что-то изменить, дав ему OID, где:
sqlite> update documents set indoklenk = 0 where oid = 11;
Error: columns id, pid are not unique
Почему я получаю эту ошибку? Я никогда не меняю ключи? Также у меня нет никаких коллизий ... Есть некоторые записи, которые имеют одинаковый id
, но pid
всегда отличается.
Неужели это плохая идея что-то изменить с помощью oid? Я никогда не слышал ничего плохого об этом ...
edit: даже если я изменю его на
update documents set indoklenk = 0 where id = '7408cf58dbf8985d8532b719edcd08b8' and pid = '98b482dc01793d0dafa02a644fc425bd';
это не работает! я получаю ту же ошибку ... что там происходит? Почему я не могу изменить данные?