1

postgresql 9.3 に $mysqli->insert_id に相当するものはありますか? 1 つのテーブルにインポートしていますが、そのテーブルで最後に作成された主キーを 2 番目のテーブルに外部キーとして適用する必要がありますか? 表 1 ----> 表 2 でレコードを完成させます。

もう少し情報:

$sql = "INSERT INTO sheet_tbl (site_id,  eventdate) VALUES ('$_POST[site_id]','$_POST[eventdate]') returning id";

**上記の SQL を使用して、レコードを挿入します。次の SQL 挿入でこれをどのように利用しますか? 返す ID を使用する場合、この ID はどこに保存されますか? 別の INSERT ステートメントでどのように使用しますか?

 $sql1 = "INSERT INTO record_tbl (line, taxom_id, number_of_taxom, sheet_id) VALUES (1,1,'$_POST[cased_numbers]','$_POST[sheet_id]')";
  $result = pg_query($sql1);
4

3 に答える 3

3

挿入したばかりの行 (またはテーブルの列を使用する任意の式) の PK が必要な場合は、RETURNING 句を使用できます。ドキュメント: RETURNING 句

例えば。

test=# create table a (id serial, val text);
NOTICE:  CREATE TABLE will create implicit sequence "a_id_seq" for serial column "a.id"
CREATE TABLE

test=# insert into a (val) values ('foo') returning id;
 id 
----
  1
于 2013-07-25T14:41:52.210 に答える
0

実際には、1 つのクエリで実行できます。

WITH sheet AS(
    INSERT INTO sheet_tbl (site_id,  eventdate) VALUES ('$_POST[site_id]','$_POST[eventdate]') returning id
)
INSERT INTO record_tbl select 1,1,'$_POST[cased_numbers]',id FROM sheet;
于 2013-07-27T07:02:08.957 に答える