title: Upsert in Slick
body: <p>Is there a way I can neatly do an upsert operation in Slick? The following works but is too obscure/verbose and I need to explicitly state the fields that should be updated:</p>
  
  <pre><code>val id = 1
  val now = new Timestamp(System.currentTimeMillis)
  val q = for { u &lt;- Users if u.id === id } yield u.lastSeen 
  q.update(now) match {
    case 0 =&gt; Users.insert((id, now, now))
    case _ =&gt; Unit
  }
  </code></pre>