update_resource query
001_update_resources_control_version.sql
SQL種別
UPDATE
SQLの概要
同一資源の予約作成・取消と競合させるため、資源の内部制御版を進めて現在値を取得する。
利用するテーブル
resources
引数
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
resources |
resource_id |
resource_id |
資源ID。 | VARCHAR(36) |
no |
戻り値
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
resources |
resource_id |
resource_id |
資源ID。 | VARCHAR(36) |
no |
resources |
active |
active |
新規予約を受け付けるかどうか。 | BOOLEAN |
no |
resources |
row_version |
row_version |
利用者に公開する楽観ロック用の行バージョン。 | INT |
no |
条件
WHEREresource_id = @resource_id
002_select_reservations.sql
SQL種別
SELECT
SQLの概要
資源の無効化可否を判定するため、開始前の確定予約の件数を取得する。
利用するテーブル
reservations
引数
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
reservations |
resource_id |
resource_id |
予約対象の資源ID。 | VARCHAR(36) |
no |
reservations |
start_at |
now |
予約開始日時。UTCで保存する。 | TIMESTAMPTZ |
no |
戻り値
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
- |
future_reservation_count |
future_reservation_count |
- | int |
no |
条件
WHEREreservations.resource_id = @resource_idAND reservations.status = 'confirmed'AND reservations.start_at > @now
003_update_resources.sql
SQL種別
UPDATE
SQLの概要
資源の名前・説明・種別・有効状態を更新し、公開版を1つ進める。
利用するテーブル
resources
引数
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
resources |
name |
name |
資源名。空白除去後1〜100文字。 | VARCHAR(100) |
no |
resources |
description |
description |
資源の説明。0〜1,000文字。 | VARCHAR(1000) |
no |
resources |
kind |
kind |
資源種別。roomまたはequipment。 | VARCHAR(20) |
no |
resources |
active |
active |
新規予約を受け付けるかどうか。 | BOOLEAN |
no |
resources |
resource_id |
resource_id |
資源ID。 | VARCHAR(36) |
no |
戻り値
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
resources |
resource_id |
resource_id |
資源ID。 | VARCHAR(36) |
no |
resources |
name |
name |
資源名。空白除去後1〜100文字。 | VARCHAR(100) |
no |
resources |
description |
description |
資源の説明。0〜1,000文字。 | VARCHAR(1000) |
no |
resources |
kind |
kind |
資源種別。roomまたはequipment。 | VARCHAR(20) |
no |
resources |
active |
active |
新規予約を受け付けるかどうか。 | BOOLEAN |
no |
resources |
row_version |
row_version |
利用者に公開する楽観ロック用の行バージョン。 | INT |
no |
条件
WHEREresource_id = @resource_id