WHERE NOT EXISTS(SELECT name FROM my_table WHERE name= name)
this doesn't give me error but it doesn't insert data either.
I'm doubting your assertion that it doesn't error. How do you run that query such that age and name are recognized given the main query doesn't have a from clause?