質問: [b_val1, b_val2, b_val3] ``` 私は挿入したい`a_vals`挿入し、 `b_vals`リストオブジェクトに外部キーの代わりに参照を使用して、。
回答: 自分でIDを生成します。 1. BEGINトランザクション 2. テーブルをロックする 3. nextval()を呼び出す - あなたの最初のIDです 4. IDを含むCOPYを生成する 5. テーブルbと同じ 6. 最終ID + 1でsetval()を呼び出す 7. COMMITトランザクション ステップ2では、おそらくシーケンスの関係をロックしたいと思うでしょう。コードがnextval()を呼び出し、そのIDをどこかに隠すと、そのIDが使用されるまでにすでに使用されている可能性があります。 ややトピック外の事実:たくさんのバックエンドが挿入されている場合に設定できる "キャッシュ"設定があります。これはブロック単位でカウンタをインクリメントします。