問:我想在PostgreSQL的測試if語句:如何測試PostgreSQL中的if語句?
IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN
PRINT 'Good'
ELSE
PRINT 'Bad'
END IF;
現在,這將引發在IF錯誤。
據我所知,這是因爲我需要使用plpgsql才能夠使用if,print和變量。
到目前爲止,我可能還必須使用SELECT而不是打印。
如何在將此語句執行到plpgsql之前切換語言?
我想先測試一下,然後把它放入存儲過程。 要使用的變量等
測試代碼
編輯:
解決方式:
DO LANGUAGE plpgsql $$
BEGIN
IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN
RAISE NOTICE 'GOOD';
ELSE
RAISE NOTICE 'BAD';
END IF;
END;
$$;
回覆:「我想先測試它,然後再將它放入存儲過程中」:爲什麼?當你測試C#代碼時,你拒絕創建一個'Main'方法嗎? – ruakh 2012-02-05 18:39:39
@ruakh:不,但我拒絕爲所有代碼(包含所有參數)創建函數,然後每次需要測試一些代碼時都必須從主方法調用此函數。 (之後也不得不刪除這些功能)。基本上,我想要做的就是運行CREATE LANGUAGE plpgsql;如果它不是腳本開始處的註冊語言。但是這似乎不太可能,如果沒有if語句...... – 2012-02-05 18:44:24
Postgres中沒有'PRINT'語句。而PL/pgSQL始終是從9.0開始創建的。所以你只需要測試它,如果你的目標是以前的版本 – 2012-02-05 19:07:28