这里我创建一个空表和一个函数:
CREATE TABLE "ebook_info_t" (
"ebook_id" uuid NOT NULL,
...
PRIMARY KEY ("ebook_id")
);
CREATE OR REPLACE FUNCTION add_ebook_f(
IN author text,
OUT existid uuid, OUT isexist bool)
RETURNS SETOF RECORD AS $$
DECLARE
rc uuid := NULL;
bkname text :=NULL;
BEGIN
SELECT ebook_id,title INTO rc,bkname FROM ebook_info_t WHERE author_name=author;
RAISE EXCEPTION 'bookid=%, title=%',rc,bkname;
END
$$
LANGUAGE plpgsql;
我通过pg模块在nodejs中调用此函数,其版本为6.1.2
首先,表ebook_info_t
为空。我调用函数add_ebook_f
然后接收bookid=3d6171d3-3d45-4869-8e89-b8975a31246b, title=thebookname
其次,我删除WHERE-condition
。然后我再打电话给它。我收到了bookid=bac22a64-9cb2-440a-be39-b40d74c2ddfb, title=<NULL>
最后,我在pgAdmin4中测试了这个函数。我显示ERROR: bookid=<NULL>, title=<NULL>
如果该书不存在,我想将其插入表中。但是如果我在nodejs中调用add_ebook_f
,我无法判断这本书是否存在
所以我的问题是,如果它不存在,如何将书信息插入表格?换句话说,我可以知道这本书存在吗?