كيف يمكنني تعيين قيمة تسلسل لحقل SQLite عندما تكون قيمة الحقل UID فارغة

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

سؤال

كيف يمكنني تعيين قيمة تسلسل لحقل "UID" وهو لاغية في جدول 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