当字段UID值为NULL时,如何将序列值分配给sqlite字段

时间:2010-06-12 09:44:57

标签: sqlite auto-increment manual unique-key

如何将序列值分配给现有sqlite表中的NUll字段“UID”,例如

table: FOO  
name    UID
A   1
B   2
C   100
D   NULL
E   NULL
F   NULL

我想要的是

table: FOO  
name    UID
A   1
B   2
C   100
D   101
E   102
F   103

有些身体能帮忙吗? 我想根据自己的原因寻求使用自动增量的替代方案......

谢谢!

2 个答案:

答案 0 :(得分:0)

Register a function返回它被调用的次数,然后执行

UPDATE FOO SET UID = 100 + increment() WHERE UID IS NULL

答案 1 :(得分:0)

在我的脑海中起草了一种方法,我不知道它是否正常工作以及它有多可靠......

CREATE TRIGGER auto_next_id
AFTER INSERT ON table FOR EACH ROW
BEGIN
   UPDATE table SET uid = max(uid) + 1 ;
END;