フィールドUID値がnullの場合、SQLiteフィールドにシーケンス値を割り当てるにはどうすればよいですか

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

質問

たとえば、既存の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;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top