gpt4 book ai didi

postgresql - 确定输入数组 plpgsql 的大小

转载 作者:行者123 更新时间:2023-11-29 14:04:23 24 4
gpt4 key购买 nike

我有一个 plpgsql 函数,它接受一个整数 [] 作为输入。

整个设置可以在这个问题中找到: Passing a record as function argument 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;

我现在想将 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 );

第二个参数是您感兴趣的维度。大多数数组是一维的,因此在大多数情况下 1 是正确的值。

如果您实际上是在查找 text 数组中所有字符串的长度,请使用 array_to_stringlength:

SELECT length(array_to_string( ARRAY['a','bb','ccc'], '' ));                                                                                                         

顺便说一句,您链接到的文章已有 12 年历史,看起来完全过时了。

关于postgresql - 确定输入数组 plpgsql 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12742037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com