0
:如何改變這是一個從.sql文件返回的輸出 - 我有以下代碼PLPGSQL
DO $$
BEGIN
CREATE TABLE IF NOT EXISTS widget_changes (
change_id integer NOT NULL,
change_date date NOT NULL default CURRENT_DATE,
change_file character varying(255),
description character varying(255)
);
IF NOT EXISTS (SELECT 0 FROM pg_class where relname = 'widget_changes_change_id_seq')
THEN
CREATE SEQUENCE widget_changes_change_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
USING local;
ALTER TABLE ONLY widget_changes ALTER COLUMN change_id SET DEFAULT nextval('widget_changes_change_id_seq'::regclass);
INSERT INTO widget_changes VALUES (DEFAULT,DEFAULT, 'test.sql', 'test description');
END IF;
END
$$
我想,這樣當它是成功的,它返回OK改變這種代碼。如果有任何失敗,我想要「假」或其他單個單詞。
現在,當我在命令行中運行,第一次通過,則返回:
testbox:/tmp/ss# psql -U postgres -d widgets -f test.sql
DO
,然後當我再次運行它,它返回:
psql:test.sql:26: NOTICE: relation "widget_changes" already exists, skipping
CONTEXT: SQL statement "CREATE TABLE IF NOT EXISTS widget_changes (
change_id integer NOT NULL,
change_date date NOT NULL default CURRENT_DATE,
change_file character varying(255),
description character varying(255)
)"
PL/pgSQL function inline_code_block line 3 at SQL statement
DO
它看起來像它成功地測試了「EXISTS」條件,但是我需要防止所有的冗長並且只返回一個OK/FAIL類型的東西。 任何提示將不勝感激。