在这里,我创建了一个空表和一个函数:
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;
我在nodejs中通过pg模块调用这个函数,版本是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>
.
如果这本书不存在,我想将它插入到表格中。但是如果我调用add_ebook_f
nodejs,我无法判断这本书是否存在。
所以我的问题是,如果书籍信息不存在,我该如何将它插入到表中?换句话说,我能知道这本书的存在吗?