PostgreSQL INSERT ON CONFLICT UPDATE (upsert) use all excluded values
<p>When you are upserting a row (PostgreSQL >= 9.5), and you want the possible INSERT to be exactly the same as the possible UPDATE, you can write it like this:</p>

<pre><code>INSERT INTO tablename (id, username, password, level, email) 
                VALUES (1, 'John', 'qwerty', 5, 'john@mail.com') 
ON CONFLICT (id) DO UPDATE SET 
  id=EXCLUDED.id, username=EXCLUDED.username,
  password=EXCLUDED.password, level=EXCLUDED.level,email=EXCLUDED.email
</code></pre>

<p>Is there a shorter way? To just say: use all the EXCLUDE values.</p>

<p>In SQLite I used to do :</p>

<pre><code>INSERT OR REPLACE INTO tablename (id, user, password, level, email) 
                        VALUES (1, 'John', 'qwerty', 5, 'john@mail.com')
</code></pre>