I am quite new to PostgreSQL and trying to execute some queries. I have written this function in sql but i get an error when I try to execute the following code:
CREATE OR REPLACE FUNCTION title_basics_partitioner()
RETURNS TRIGGER AS $$
BEGIN
IF (startyear is null) THEN
INSERT INTO startyear_null VALUES (NEW.*);
ELSE IF (startyear >= '1874' AND startyear < '1894') THEN
INSERT INTO startyear_1874_1894 VALUES (NEW.*);
ELSE IF (startyear >= '1894' AND startyear < '1914') THEN
INSERT INTO startyear_1894_1914 VALUES (NEW.*);
ELSE IF (startyear >= '1914' AND startyear < '1934') THEN
INSERT INTO startyear_1914_1934 VALUES (NEW.*);
ELSE IF (startyear >= '1934' AND startyear < '1954') THEN
INSERT INTO startyear_1934_1954 VALUES (NEW.*);
ELSE IF (startyear >= '1954' AND startyear < '1974') THEN
INSERT INTO startyear_1954_1974 VALUES (NEW.*);
ELSE IF (startyear >= '1974' AND startyear < '1994') THEN
INSERT INTO startyear_1974_1994 VALUES (NEW.*);
ELSE IF (startyear >= '1994' AND startyear < '2014') THEN
INSERT INTO startyear_1994_2014 VALUES (NEW.*);
ELSE IF (startyear >= '2014' AND startyear < '2115') THEN
INSERT INTO startyear_2014_2115 VALUES (NEW.*);
ELSE
RAISE EXCEPTION 'Out of range year value. Fix the title_basics_insert_trigger() function!';
END IF;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
And that's the error i get:
ERROR: syntax error at or near ";"
LINE 26: END;
^
SQL state: 42601
Character: 1174
Any ideas?