我有3個表professionals
,services
和feature_professional
我需要在插入數據時插入professional
。這是我試過的sql。PostgreSQL一次插入2個關係
WITH professionals as (INSERT INTO professionals(id, company_id, first_name)
VALUES (1, 1, 'peter') RETURNING *)
INSERT INTO services(id, professional_id, name)
VALUES (1, (select professionals.id from professionals), 'haircut'),
INSERT INTO feature_professional(id, professional_id, feature_id, enabled)
VALUES
(1, (select professionals.id from professionals), 1, true)
我也試過不同的這種包裝所有插入語句,但仍然沒有運氣的變化。我得到的錯誤是syntax error
。
ERROR: syntax error at or near "INSERT"
LINE 106: INSERT INTO feature_professional
完成此操作的正確語法是什麼?我知道如果我拿出第三個insert
聲明,查詢就起作用了。例如:
WITH professionals as (INSERT INTO professionals(id, company_id, first_name)
VALUES (1, 1, 'peter') RETURNING *)
INSERT INTO services(id, professional_id, name)
VALUES (1, (select professionals.id from professionals), 'haircut')
如果我做2個CTE語句與插入他們的內部不是要創建2條記錄在數據庫中? – Rodrigo
我從來沒有在插入的CTE之前,所以我儘量在這[** ** DEMO(http://sqlfiddle.com/#!17/23e05/2),但插入後的表犯規顯示任何插入行。這是應該如何工作? –
這工作,這基本上是我在我的應用程序現在。 [DEMO](http://sqlfiddle.com/#!17/23e05/9)。 – Rodrigo