0
CREATE OR REPLACE FUNCTION public.create_user(_name TEXT, _pass TEXT, _iconid INTEGER)
RETURNS user_info
LANGUAGE sql
AS $$
DECLARE
_newid INTEGER;
BEGIN
INSERT INTO users(name, password, iconid) VALUES (_name, crypt(_pass, gen_salt('bf')), _iconid);
SELECT _newid = currval(pg_get_serial_sequence('users', 'id'));
SELECT u.id, u.name, u.rating, t.name, i.path, i.name FROM users u
LEFT OUTER JOIN usertypes t ON t.id = u.typeid
LEFT OUTER JOIN usericons i ON i.id = u.iconid
WHERE u.id = _newid;
END
$$;
ERROR: syntax error at or near "INTEGER"
Line 6: _newid INTEGER;
^
我肯定有我丟失的東西,但它一直很無奈,到目前爲止,因爲這些工具相比,幾乎所有其他主要的數據庫都不合格 - MySQL和SQL服務器,Oracle等。
現在函數創建,但執行時出現此錯誤:'select * from public.create_user('DerpDerp5678','password',1); 錯誤:查詢沒有結果數據的目標地址 提示:如果您想丟棄SELECT的結果,請改用PERFORM。 上下文:PL/pgSQL函數create_user(文本,文本,整數)第6行在SQL語句處爲' – MonkRocker
將此標記爲答案,但 - 在此處無所謂。我厭倦了蹩腳的工具摔跤。回到mySQL裏,像EDITING A FUNCTION這樣神祕的角落案例任務並沒有隱藏在塵土飛揚的角落裏。 – MonkRocker
您需要針對該錯誤的單獨問題。雖然它可能會重複。 – Flimzy