| 2009/10/02(Fri) 11:10:02 編集(投稿者)
>>FOR UPDATE
自分の手元の PostgreSQL 7.2 相手に、絞り込み条件 #DSQL("id = 20091443) FOR UPDATE;--(") で、抽出してみたけど、他の PC からも 即 訂正可能 でした。(^^;
PostgreSQL 7.2 では、最初の SELECT COUNT(*) 時の FOR UPDATE はエラーを出したけど、次の実際の抽出 クエリは実行されたのだけれど・・・ # 最初のエラーは集計に FOR UPDATE が付加された # ためで、うにんさんの式とは違うので当然ではあり # ます。ただカウント(エラーが発生しても)されなく # とも次の実際に必要なクエリは実行されるという事。
--------------------------------------------------------------------------- [5.766]conn=03603A88, query='SELECT COUNT(*) FROM "reikai" WHERE (id = 20091443) FOR UPDATE;--()' [5.766]ERROR from backend during send_query: 'ERROR: SELECT FOR UPDATE is not allowed with AGGREGATE' [5.766]STATEMENT ERROR: func=SC_execute, desc='(null)', errnum=7, errmsg='Error while executing the query' [5.766] ------------------------------------------------------------ [5.766] hdbc=03603A88, stmt=03608AA8, result=03609D30 [5.766] prepare=0, internal=0 [5.766] bindings=00000000, bindings_allocated=0 [5.766] parameters=00000000, parameters_allocated=0 [5.766] statement_type=0, statement='SELECT COUNT(*) FROM "reikai" WHERE (id = 20091443) FOR UPDATE;--()' [5.766] stmt_with_params='SELECT COUNT(*) FROM "reikai" WHERE (id = 20091443) FOR UPDATE;--()' [5.766] data_at_exec=-1, current_exec_param=-1, put_data=0 [5.766] currTuple=-1, current_col=-1, lobj_fd=-1 [5.766] maxRows=0, rowset_size=1, keyset_size=0, cursor_type=0, scroll_concurrency=1 [5.766] cursor_name='SQL_CUR03608AA8' [5.766] ----------------QResult Info ------------------------------- [5.766] fields=03F125F0, backend_tuples=00000000, tupleField=0, conn=00000000 [5.766] fetch_count=0, num_total_rows=0, num_fields=0, cursor='(NULL)' [5.766] message='ERROR: SELECT FOR UPDATE is not allowed with AGGREGATE', command='(NULL)', notice='(NULL)' [5.766] status=7, inTuples=0 [5.766]CONN ERROR: func=SC_execute, desc='(null)', errnum=110, errmsg='ERROR: SELECT FOR UPDATE is not allowed with AGGREGATE' [5.766] ------------------------------------------------------------ [5.766] henv=03603A58, conn=03603A88, status=1, num_stmts=16 [5.766] sock=036065D0, stmts=036086A8, lobj_type=-999 [5.766] ---------------- Socket Info ------------------------------- [5.766] socket=592, reverse=0, errornumber=0, errormsg='(NULL)' [5.766] buffer_in=56649368, buffer_out=56653472 [5.766] buffer_filled_in=1, buffer_filled_out=0, buffer_read_in=1 [5.797]conn=03603A88, query='SELECT "id","コースNo",・・・,"記入日","更新日","編集日","年度" FROM "reikai" WHERE (id = 20091443) FOR UPDATE;--() ORDER BY "id" ASC ' [5.859] [ fetched 1 rows ] [10.359]conn=03603A88, query='UPDATE "reikai" SET "hogehoge"=NULL WHERE "id"=20091443' [10.359]conn=03603A88, query='COMMIT' [12.609]conn=03603A88, PGAPI_Disconnect ---------------------------------------------------------------------------
|