PHP+PostgreSQLで連番のIDやカウンターを作りたいのですが
ロックの仕方がいまいちわかりません。
一応、動くことは動くのですがこんな感じで重複しないようになるのでしょうか?

$result = pg_query($conn,"BEGIN");
$result = pg_query($conn,"LOCK TABLE counterTable IN ROW SHARE MODE");
$result = pg_query($conn,"SELECT * FROM counterTable");
$counterdbrs = pg_fetch_array($result,0);
$counter=$counterdbrs["counter"];
$counter++;
$result = pg_query($conn,"UPDATE counterTable SET counter=$counter");
$result = pg_query($conn,"COMMIT");