キーバリューを移動する (LCC.kvdb.dict.move_value)
宣言
ok, old_value_or_err = LCC.kvdb.dict.move_value(src_name, src_key, dst_name?, dst_key?, timeout?)
引数
- src_name
文字列。移動元の辞書名です(空文字列は不可、最大256バイト) - src_key
文字列。移動元のキー名です(有効な UTF-8 の空でない文字列) - dst_name
任意の文字列。移動先の辞書名です。既定では移動元と同じです(空文字列は不可、最大256バイト) - dst_key
任意の文字列。移動先のキー名です。既定では移動元のキー名と同じです(有効な UTF-8 の空でない文字列) - timeout
任意の数値。リクエストのタイムアウト(秒)です。既定値は60です
戻り値
- ok
ブール値。移動に成功した場合はtrue、失敗した場合はfalseを返します - old_value_or_err
文字列またはnil。成功時は移動先にあった元の値(存在しなければnil)、失敗時は通常エラーの説明です。移動元のキーが存在しない場合、2 番目の戻り値は一定の文言とは限りません
説明
キーを移動元の辞書から移動先の辞書へアトミックに移動します。
移動元と移動先が同じで、キー名も一致する場合、この関数はエラーをスローします。
成功し、移動先にもともと値がなかった場合はtrue, nilを返します。
移動元のキーが見つからない場合はfalseを返しますが、2 番目の戻り値は一定の文言とは限りません。
例
local ok, old = LCC.kvdb.dict.move_value("処理待ち", "task#1", "処理中", "task#1")
if not ok then
error(old)
end