2010-06-12 6 views
0

Comment puis-je attribuer une valeur de séquence à un champ « uid » qui est Null dans le tableau de sqlite existant, par exempleComment puis-je attribuer une valeur de séquence à un champ SQLite lorsque la valeur UID de champ est NULL

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

ce que je veux est

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

peut aide du corps? Je veux chercher une alternative pour utiliser l'auto-incrustation pour ma propre raison ...

merci!

Répondre

0

Register a function qui retourne le nombre de fois qu'il est appelé, puis faire

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

merci, devrait increment() être une fonction C, ou peut-il être fonction python? Ou, le langage SQL tel que SELECT count (*) de FOO peut-il fonctionner au lieu de increment()? –

0

une approche rédigée dans mon esprit, je ne sais pas si cela fonctionne bien et combien fiable ......

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