フィールドUID値がnullの場合、SQLiteフィールドにシーケンス値を割り当てるにはどうすればよいですか
-
26-09-2019 - |
質問
たとえば、既存のSQLiteテーブルでnullであるフィールド「uid」にシーケンス値を割り当てる方法
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