CREATE OR REPLACE FUNCTION addUploader(INTEGER, TEXT, TEXT) RETURNS TEXT AS $$
DECLARE
u_id ALIAS FOR $1 ;
username ALIAS FOR $2;
email ALIAS FOR $3;
BEGIN
IF email NOT LIKE '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$' THEN
RAISE EXCEPTION 'Wrong E-mail format %', email
USING HINT = 'Please check your E-mail format.';
END IF ;
INSERT INTO uploader VALUES(u_id,username,email);
IF NOT FOUND THEN
RETURN 'Error';
END IF;
RETURN 'Successfully added' ;
EXCEPTION WHEN unique_violation THEN
RAISE NOTICE 'This ID already exists. Specify another one.' ;
RETURN 'Error' ;
END ; $$ LANGUAGE 'plpgsql' ;
SELECT addUploader(25,'test','steven@gmail.com');
此正则表达式不接受正确的电子邮件地址。它应该接受 steven@gmail.com。它也拒绝任何其他字符串。
stevengmailcom - 被拒绝
一切都被拒绝。
我究竟做错了什么?