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
表单中接受表格表达的正确参数是什么?