【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

参考文献:軽量・高速モバイルデータベース Realm入門

やりたいこと

SwiftUIでRealmで作成したモデルクラスに、Primary key(プライマリーキー)を設定する。

モデルクラスの作成

まず、Primary Keyを設定するためのモデルクラスを作成します。

ここでは例としてユーザを登録する「UserTable」というモデルクラスを作成します。

作成方法については過去に紹介しているので、そちらを参考にしてください。

Realmでテーブル(モデル)を作成する方法

以下は使用するモデルクラスのコードです。

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のモデルクラスにプライマリーキーを設定する

まとめ

RealmでPrimary Key(プライマリーキー)を設定するにはprimaryKey()関数をモデルクラスに記述する。

参考文献・おすすめ文献