このプロシージャを使用して、未使用または不要な同期ステータスを削除します。
ml_delete_sync_state ( 'user', 'remote_id' )
構文 |
説明 |
---|---|
user |
VARCHAR(128)。Mobile Link ユーザ名。 |
remote_id |
VARCHAR(128)。リモート ID。 |
これらのパラメータには NULL を指定できます。すべてのパラメータが NULL の場合、プロシージャは何も処理を実行しません。
このストアド・プロシージャは、指定された Mobile Link ユーザ名とリモート ID について、ml_subscription テーブルからすべてのローを削除します。指定されたリモート ID が ml_subscription テーブルのどのローからも参照されなくなった場合は、ml_database テーブルからそのリモート ID も削除します。
リモート ID が NULL で、Mobile Link ユーザ名が NULL でない場合、指定された Mobile Link ユーザ名で参照されるすべてのローを ml_subscription テーブルから削除します。また、ml_subscription テーブル内のどのローからも参照されなくなったすべてのリモート ID を ml_database テーブルから削除します。
Mobile Link ユーザ名が NULL で、リモート ID が NULL でない場合、このストアド・プロシージャは、指定されたリモート ID について、ml_subscription テーブルと ml_database テーブルからすべてのローを削除します。
すべてのリモート ID が ml_database テーブルから削除され、この Mobile Link ユーザが ml_subscription テーブル内のどのローからも参照されなくなっても、このユーザはこのストアド・プロシージャによって削除されません。この Mobile Link ユーザを削除する必要がある場合は、次のようなコマンドを発行して削除できます。
delete from ml_user where name = 'user_name' |
ここで、user_name は、削除する Mobile Link ユーザです。
このストアド・プロシージャは、細心の注意を払って使用してください。次回 Mobile Link クライアントがこのリモート ID の同期を要求したとき、Mobile Link サーバは、同期ステータスをチェックしないで、このリモート ID を ml_database テーブルと ml_subscription テーブルに自動的に追加します。前回行われた同期が成功しなかったリモート ID の同期ステータスを削除すると、データの不整合が発生する場合があります。
統合データベースのタイプが DB2 メインフレームの場合、このプロシージャは ml_del_sstate という名前になります。IBM DB2 メインフレームのシステム・プロシージャ名の変換を参照してください。
次の例は、John という Mobile Link ユーザのリモート ID remote_db_for_John を持つリモート・データベースに関する Mobile Link システム・テーブル情報をクリーンアップします。
CALL ml_delete_sync_state( 'John', 'remote_db_for_John' ) |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |