11

PostgreSQLとRETURNINGがどのように機能するかを理解していると思います-たくさんのリソースを見つけました。私が追いついているとしたら、それは次のようになります

"INSERT INTO table (column2, column3) VALUES ('value1', 'value2') RETURNING id;"

ただし、PHP経由でこれにアクセスするのに役立つものは見つかりません。わかったと思ったらやってみました

$new_id = pg_query($dbc, "INSERT INTO table (column2, column3) ".
"VALUES ('value1', 'value2') RETURNING id;");
return $new_id;

ただし、NULLを返します。また、1つのクエリで変数を個別に実行して宣言してみました。解決策を探す時間を探した後、max(id)SELECTステートメント/関数に落ち着きましたが、それでも気になります。どんな助けでも大歓迎です。

私はPostgres8.4とPHP5.3を使用しています。

4

1 に答える 1

21

$new_idIDは含まれていませんが、リソース記述子です。クエリはSELECTであるため、例を使用すると、そこからデータをフェッチする必要がありますpg_fetch_array($new_id)

PostgreSQLのRETURNING句は、挿入または変更された行のすべてのフィールドを投影しますINSERT|UPDATE … RETURNING id, field1, field2

于 2012-10-25T14:34:13.357 に答える