Comment puis-je attribuer une valeur de séquence à un champ Sqlite lorsque la valeur UID de champ est nul

StackOverflow https://stackoverflow.com/questions/3028200

Question

Comment je peux attribuer une valeur de séquence à un champ "UID" qui est nul dans la table SQLite existante, par exemple

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

Ce que je veux, c'est

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

Un corps peut-il aider? Je veux chercher une alternative pour utiliser AutoIncrement pour moi pour moi ...

Merci!

Était-ce utile?

La solution

Enregistrer une fonction qui renvoie le nombre de fois qu'il s'appelle, puis fait

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

Autres conseils

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

CREATE TRIGGER auto_next_id
AFTER INSERT ON table FOR EACH ROW
BEGIN
   UPDATE table SET uid = max(uid) + 1 ;
END;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top