tar*_*aki 0 postgresql plpgsql
我有一个plpgsql函数,它接受一个整数[]作为输入.
整个设置可以在这个问题中找到: 将记录作为函数参数PL/pgSQL传递
简短版本:我有一个从书本到作者的n到m关系,其中包含一个名为books_author的链接表.我现在有一个看起来像这样的函数:
create function f_insert_books(title varchar, isbn varchar, publisher varchar,
author_id integer[]) returns void as $$
begin
--insert book
--insert link to authors into the books_author table
end;
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)
我现在想在书中添加number_of_authors.有没有一种简单的方法来确定author_id数组的大小,或者您是否会建议将"number_of_authors int"作为输入参数传递?
我发现了这个建议,但我对这种方法的表现有点担心.所以也许有更简单/更快的东西. http://archives.postgresql.org/pgsql-sql/2000-06/msg00169.php
非常感谢您的帮助.
用途array_length:
SELECT array_length( ARRAY[1,2,3], 1 );
Run Code Online (Sandbox Code Playgroud)
第二个参数是您感兴趣的维度.大多数数组都是1维的,因此在大多数情况下1是正确的值.
如果你其实找一个在所有的字符串的长度text数组,使用array_to_string具有length:
SELECT length(array_to_string( ARRAY['a','bb','ccc'], '' ));
Run Code Online (Sandbox Code Playgroud)
BTW,你链接的文章是12岁,看起来完全过时了.
| 归档时间: |
|
| 查看次数: |
6364 次 |
| 最近记录: |