1
我想寫一個函數,它將添加插入記錄,然後在相關表中插入一個或多個記錄。我想我知道該在函數內部做什麼,但我不知道函數簽名應該是什麼樣子。PostgreSQL:創建一個接受多個值的函數
這裏是一個樣機樣品:
CREATE TABLE sales(id SERIAL, customer id, sold date);
CREATE TABLE saleitems(SERIAL, sale int, details varchar, price numeric(6,2));
SELECT addSale(42, '2016-01-01',
values ('stuff',13),('more stuff',42),('things',3.14),('etc',0)) items(price,details));
CREATE OR REPLACE FUNCTION addSale(customer,sold,items) RETURNS int AS
$$
-- I think I can handle the rest
$$
LANGUAGE sql;
的要點:
- 我想能夠使用
VALUES (…) name(…)
結構作爲參數 - 這可能嗎? - 真實的問題,我認爲是最後一個參數
items
。這是什麼適當的類型? - 我希望語言爲
SQL
,因爲我的下一步是將其轉換爲其他方言(MySQL & SQL Server)。不過,我會做任何需要的。
最終我將包裹在一個事務中的代碼體,並返回新的sales.id
值。
問題是:在VALUES
表單中接受表格表達的正確參數是什麼?