0

pl/pgsqlを使用してUUID値をテーブルに追加しようとしています。これは私のコードです:

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«は存在しません

しかし、このテーブルは私のDBに存在します。どうすればこの問題を解決できますか?ありがとうございました

4

1 に答える 1

2

次のようなサロゲートテーブルを作成したと思います。

create table "Surrogate_Table" (...)

テーブル名の前後の引用符に注意してください。また、エラーメッセージがについて話していることにも注意してくださいsurrogate_table。PostgreSQLは、引用符で囲まれていないすべての識別子を小文字に折りたたんでいますが、大文字と小文字が混在するテーブル名があります。正しいケースを取得するには、さらに二重引用符を追加します。

INSERT INTO public."Surrogate_Table"(wert) VALUES(uid);
于 2013-01-07T22:27:17.873 に答える