我对一个小型数据库有一个非常奇怪的问题。 该表有大约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上的东西是不是一个坏主意?我从未听过有关它的坏事......
编辑:即使我通过
更改它update documents set indoklenk = 0 where id = '7408cf58dbf8985d8532b719edcd08b8' and pid = '98b482dc01793d0dafa02a644fc425bd';
它不起作用!我得到同样的错误......那里发生了什么?为什么我无法更改数据?
答案 0 :(得分:0)
经过对代码的大量研究后我发现错误不是来自我更新的表,而是来自第二个表的日志消息。在此表中,主键未设置为正确,因此如果我在文档表中更新,则可能是发生双重消息...
先检查你的触发器;)