Mit Postgres 9.5 gibt es eine Konfliktlösung bei Insert's auf Tupel welche schon existieren oder Updates wenn Tupels noch nicht existieren. Es gibt auch einen Workaround dies mit zwei Queries zu tun.
UPDATE table SET field='C', field2='Z' WHERE id=3;
INSERT INTO table (id, field, field2)
SELE...
A simple way to add a database and a user and grant all privileges
create database DatabaseName;
create user UserName identified by 'Password';
grant all privileges on DatabaseName.* to 'UserName'@'localhost';
grant all privileges on DatabaseName.* to 'UserName'@'%';