web-dev-qa-db-ja.com

PostgreSQLでアドホックスクリプトを実行する方法

私はこれをPostgreSQL 9.2で実行しようとしています:

RAISE NOTICE 'hello, world!';

そして、サーバーは言う:

Error : ERROR:  syntax error at or near "RAISE"
LINE 1: RAISE NOTICE 'hello, world!'
        ^

どうして?

37
yegor256

匿名 コードブロック を使用します。

DO language plpgsql $$
BEGIN
  RAISE NOTICE 'hello, world!';
END
$$;

変数が参照されます using %

RAISE NOTICE '%', variable_name;
75
Tomas Greif

raisePL/pgSQL のみ。

http://www.postgresql.org/docs/current/static/plpgsql-errors-and-messages.html

create or replace function r(error_message text) returns void as $$
begin
    raise notice '%', error_message;
end;
$$ language plpgsql;

select r('an error message');
NOTICE:  an error message
24
Clodoaldo Neto

簡単な例:

CREATE OR REPLACE FUNCTION test()     
RETURNS TRIGGER AS
'
DECLARE


num int;

 BEGIN
IF TG_OP = ''INSERT'' THEN
select count(*) into num from test_table;
IF num >= 1 THEN
RAISE WARNING ''Cannot Insert more than one row'';
RETURN OLD;
END IF;
ELSE
RETURN NEW;
END IF;

END;
' LANGUAGE plpgsql;
0
Mehdi Sadighian