Как назначить значение последовательности в поле sqlite, если значение UID поля равно NULL? - PullRequest
0 голосов
/ 12 июня 2010

Как я могу назначить значение последовательности для поля "UID", которое равно NUll в существующей таблице sqlite, например

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 голосов
/ 17 июня 2010

Разработанный подход в моей голове, я понятия не имею, работает ли он нормально и насколько он надежен ......

CREATE TRIGGER auto_next_id
AFTER INSERT ON table FOR EACH ROW
BEGIN
   UPDATE table SET uid = max(uid) + 1 ;
END;
0 голосов
/ 13 июня 2010

Зарегистрируйте функцию , которая возвращает количество ее вызовов, а затем выполните

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