29 lines
641 B
PL/PgSQL
29 lines
641 B
PL/PgSQL
CREATE OR REPLACE FUNCTION public.set_website_name(in_url text) RETURNS integer
|
|
LANGUAGE plpgsql STRICT
|
|
AS $$
|
|
DECLARE
|
|
temp_website_id integer;
|
|
temp_website_name text;
|
|
BEGIN
|
|
temp_website_name = get_website_name(in_url);
|
|
|
|
IF temp_website_name IS NULL THEN
|
|
RETURN 1;
|
|
END IF;
|
|
|
|
PERFORM * FROM website WHERE website.name = temp_website_name;
|
|
|
|
IF NOT FOUND THEN
|
|
INSERT INTO website (name) VALUES (temp_website_name);
|
|
END IF;
|
|
|
|
SELECT website.id INTO temp_website_id FROM website
|
|
WHERE website.name = temp_website_name;
|
|
|
|
UPDATE artist_website SET website_id = temp_website_id
|
|
WHERE url = in_url;
|
|
|
|
RETURN 0;
|
|
END;
|
|
$$;
|