Postgresql 8.0.4 using plpgsql The basic function is set up as: CREATE FUNCTION add_data(t_row mytable) RETURNS VOID AS $func$ DECLARE newtable text; thesql text; BEGIN INSERT INTO newtable thename from mytable where lookup.id = t_row.id; thesql := 'INSERT INTO ' || newtable || VALUES (' || t_row.* ')'; EXECUTE thesql; RETURN; END; $func$ LANGUAGE plpgsql VOLATILE; SELECT add_data(t.*) FROM mytable t where .... ERROR: column "*" not found in data type mytable Now I have tried to drop the * but then there is no concatenation function to join text to a table%ROWTYPE. So my question is how can I make this dynamic insert statement without listing out every t_row.colname? SVen ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match