Как я могу назначить значение последовательности на поле SQLite, когда значение UID поле является NULL

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

Вопрос

Как я могу назначить значение последовательности в поле «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

Может ли некоторое тело помочь? Я хочу искать альтернативу для использования автоинкремента по моей причине ...

Спасибо!

Это было полезно?

Решение

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

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

Другие советы

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

CREATE TRIGGER auto_next_id
AFTER INSERT ON table FOR EACH ROW
BEGIN
   UPDATE table SET uid = max(uid) + 1 ;
END;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top