EDIT2: Redshift doesn't support Function nor Triggers so the below is only useful if you are using a PostgreSQL database
EDIT: The following function can be called to do the insert and it should do what you need, after adapting it to your schema
CREATE OR REPLACE FUNCTION insert_function(title TEXT, data TEXT)
RETURNS BOOLEAN AS $$
BEGIN
INSERT INTO table_one(title, data) VALUES (title, data);
INSERT INTO table_two(title, data) SELECT title, unnest(string_to_array(data, '|'));
RETURN TRUE;
END;
$$ LANGUAGE plpgsql
To do an insert you would do the following:
SELECT insert_function('A', '1|2|3');
You will need to adapt the following Function and Trigger to fit your schema but it should do what you want:
CREATE OR REPLACE FUNCTION insert_function()
RETURNS trigger AS $$
BEGIN
INSERT INTO table_two(title, data) SELECT NEW.title, unnest(string_to_array(NEW.data, '|'));
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER insert_trigger AFTER INSERT ON table_one FOR EACH ROW EXECUTE PROCEDURE insert_function();