كيف يمكنني تعيين قيمة تسلسل لحقل SQLite عندما تكون قيمة الحقل UID فارغة
-
26-09-2019 - |
سؤال
كيف يمكنني تعيين قيمة تسلسل لحقل "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;
لا تنتمي إلى StackOverflow