Postgresql
獲取主表中id的值並提供給其他表
我有 5 個表,其中一個是主表,另外 4 個是具有主表 id 的外鍵的表
我必須創建一個程序,在包括主表在內的所有表中插入數據,我必須保持主表的 id 遞增。那麼我應該如何獲取主表行的值並在該過程中的其他表中提供它的 ID,而不使用 SELECT 查詢(獲取主表行的 ID)或不手動提供我的主表的 ID程序。
我希望所有這些都在數據庫端進行處理。
我正在使用 PostgreSQL
請幫助我。
假設生成了主表中的 ID(例如,因為它被定義為
generated always as identity
orserial
),您可以在單個語句中執行這些插入:with new_master as ( insert into master_table (column_one, column_two, column_tree values (1,2,3) returning id --<< makes the generated ID available ), new_t1 as ( insert into table_01 (master_id, some_column, other_column) select id, 'some_value', 'other_value' from new_master ), new_t2 as ( ... as as above ) insert into table_04 (master_id, some_column) select id, 'another_value' from new_master;
您實際上並不需要儲存過程,但如果您真的需要,可以將上述語句放在一個中。