Разница между CREATE TABLE и CREATE TABLE IF NOT EXISTS заключается в том, что при использовании простой команды CREATE TABLE, если таблица уже существует, программа немедленно завершится и дальнейшая инструкция не будет выполнена. 1
Команда CREATE TABLE IF NOT EXISTS проверит наличие таблицы. 2 Если она уже существует, то вместо ошибки выдаст уведомление, а если нет — создаст новую таблицу с указанным именем в базе данных. 1
Таким образом, при использовании CREATE TABLE программа сразу завершится, если таблица уже существует, а при использовании CREATE TABLE IF NOT EXISTS уведомление будет выдано для команды создания, и выполнение программы перейдёт к следующей инструкции (вместо завершения программы). 1
Функционал CREATE TABLE IF NOT EXISTS доступен в версиях PostgreSQL 9.1 и выше. 2