auto increment(自動採番)
Realmを導入して最初に躓いたのが、idの自動採番がわからなくて困ったので参考にしたサイトを記録しておく。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9QW5kcm9pZCVFRiVCQyU5QVJlYWxtJUUzJTgxJUFCJUUzJTgxJThBJUUzJTgxJTkxJUUzJTgyJThCYXV0byUyMGluY3JlbWVudCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9M2I5M2E2MmI1OTM5NDVlYjI1N2E4MDhiNzcyYzMwMDE&mark-x=142&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaF95YW1hMzcmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTU1MGVkMjQzYjNjMDlhMzY1ZDU3MmJiOTQ0MGM4Y2Zh&blend-x=142&blend-y=491&blend-mode=normal&s=d0a1cacb8207d05949c7c8f1fb8e357b)
Android:Realmにおけるauto increment - Qiita
概要Realmでは、auto increment の機能がサポートされていません。そのため、auto increment を利用したい場合は、自ら実装する必要があります。そこで自分なりに実装し…
とりあえず、データ保存するタイミングで以下のコードを実行するようにしてみたら連続で登録ができた。今のところDBの中を見る方法がわからないのでうまく採番できているかはよくわからないけど、主キーが自動で採番されているからエラーで落ちなくなった。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// インスタンス作成 var realm = Realm.getDefaultInstance() // 初期化 var nextUserId = 1 // userIdの最大値を取得 val maxUserId: Number? = realm.where(GroupList::class.java).max("id") // 1度もデータが作成されていない場合はNULLが返ってくるため、NULLチェックをする if (maxUserId != null) { nextUserId = maxUserId.toInt() + 1 } |
コメント