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...
Der einfachste und schnellste Weg einen User mit Datenbank und allen Privilegien zu erstellen
create database DatabaseName;
create user UserName identified by 'Password';
grant all privileges on DatabaseName.* to 'UserName'@'localhost';
grant all privileges on DatabaseName.* to 'UserName'@'%';