Hola TyantRC
mysql no es lo mismo que postgresql.
Cita: No se si es el if not exists el que me da problema ...
En realidad está clausula es particular de mysql y no corresponde a SQL estandar. Pero para eso, basta con que le quites la clausula y pruebes tu mismo si te funciona o no.
Ojo con el auto_increment. Para postgresql busca información del tipo de dato serial (Aunque realmente no sea un tipo de dato)
saludos