Notionでデータベースを作成したときに、下記のようにNewで新しい行を追加したときにID列のを自動採番したかったのですが、やり方がわかりづらかったのでその手順と仕組を紹介します。
こちらのページをそのまま使わせていただきました。
NotionのDatabaseで自動採番列を作る方法
Notionのデータベースのデフォルトの機能では自動採番がまだ実装されていないようで、少し複雑な処理を自分で作る必要があります。
1. テーブルを作成する
まずは対象となるデータベースを作成して、最初にLong ID列を用意します。今回はSampleという名前のテーブルを作成しました。
Formulaでid()
を返すように設定しておきます。
2. 親となる別のテーブルを用意する
1.で作成したテーブルとは別に、参照用の親テーブルを作成します。
今回はMasterという名前で作成しました。そのテーブルに同じくMasterという名前のレコードを1つだけ作成しておきます。
3. 親へのRelationを設定する
SampleテーブルのPropertyでMasterへのRelationを双方向で作成します。
こちらのスクショの後に、Show on MasterプロパティをONにしてください。
4. テーブルのFilterで親テーブルのレコード名を設定する
5. 親テーブルのCreated IDs Rollup列を作成する
MasterテーブルにCreated IDs Rollupという名前の列を作り、SampleテーブルのLong IDを参照する列を作ります
6. 親テーブルにCreated IDs列を作ってCreated IDs Rollup列を参照するようにする
7. 親テーブルのCreated IDsをRollupして参照する列を追加
8. テーブルのID列下記のFormulaを入力する
length(replaceAll(replaceAll(replaceAll(prop("Created IDs"), format(prop("Long ID")), "T"), "[^T]*$", ""), "[^,]", "")) + 1
これでできるようになったはずです。
解説
親テーブルと対象となるテーブルでIDをRollupして通すことにより、全レコードのIDが連続して取得できます。
それに対して、自分自身のLongID以降のIDを削除し、区切り文字であるカンマの数を数えることで自動採番を実現しています。
参考