【Realm】
Primary Key(プライマリーキー)を設定する方法
プリマリーキー(主キー)の設定
投稿日 2021/02/21 更新日 2021/09/26
こんにちは。当サイトの管理者「元木皇天」です。
今回はモバイル向けデータベースRealmでPrimary Key(プライマリーキー)を設定する方法について解説します。
環境
OS:MacOS Big Sur
Xcode:バージョン12.3
Swift:バージョン5.3
Realm:バージョン10.5.1
やりたいこと
SwiftUIでRealmで作成したモデルクラスに、Primary key(プライマリーキー)を設定する。
モデルクラスの作成
まず、Primary Keyを設定するためのモデルクラスを作成します。
ここでは例としてユーザを登録する「UserTable」というモデルクラスを作成します。
作成方法については過去に紹介しているので、そちらを参考にしてください。
以下は使用するモデルクラスのコードです。
import Foundation import RealmSwift class UserTable: Object{ //ユーザID @objc dynamic var ID: Int = 0 //ユーザ名 @objc dynamic var userName: String = "" }
それではこちらのIDにPrimary Keyを設定してみましょう。
Primary Key(プライマリーキー)の設定
RealmでPrimary Keyを設定するのは実はとても簡単です。モデルクラス内に以下のコードを記述してください。
override static func primaryKey() -> String? { return "XXXXX" }
上記のコードのreturn値のXXXXXを、Primary Keyに設定する変数名にすることで設定できます。
今回の例で示した「UserTable」に実装すると以下のようになります。
なお、ここでは変数「ID」をPrimary Keyとして設定します。
import Foundation import RealmSwift class UserTable: Object{ //ユーザID @objc dynamic var ID: Int = 0 //ユーザ名 @objc dynamic var userName: String = "" //Primary Keyの設定 override static func primaryKey() -> String? { return "ID" } }
また、以下は実際にコードを記述したXcodeの画面です。
まとめ
RealmでPrimary Key(プライマリーキー)を設定するにはprimaryKey()関数をモデルクラスに記述する。