2013-01-07 46 views
0

我尝试用pl/pgsql将UUID值添加到表中。这是我的代码:用pl/pgsql插入表中

CREATE OR REPLACE FUNCTION "Surrogate_gen"() 
    RETURNS uuid AS 
$BODY$DECLARE 
uid UUID; 
BEGIN 
uid:=(select uuid_generate_v1()); 
INSERT INTO public.Surrogate_Table(wert) VALUES(uid); 
RAISE NOTICE 'My UUID is %',uid; 
return uid; 
END 
$BODY$ 

如果我运行这段代码有错误发生的说: 关系»public.surrogate_table«犯规存在

但此表在我的数据库存在。我怎么解决这个问题? 谢谢

回答

2

我猜你是这样创建的代理表:

create table "Surrogate_Table" (...) 

注意周围的表名引号,也请注意错误消息在谈论surrogate_table。 PostgreSQL将所有未加引号的标识符折叠为小写,但是您有一个混合大小写的表名。添加一些双引号以获得正确的案例:

INSERT INTO public."Surrogate_Table"(wert) VALUES(uid);