title: How to do row insert conditionally, i.e. INSERT INTO with WHERE NOT EXISTS?
body: <p>Let's consider this table:</p>
  
  <pre><code>    +----------+----------+
      | user_id  | store_id |
      +----------+----------+
      |    39    |    8     |
      |    8     |    39    |
      |    5     |    11    |
      +----------+----------+
  </code></pre>
  
  <p>I mapped it with slick with (dropping indexes &amp; foreign keys for simplifying it):</p>
  
  <pre><code>case class FavoriteStore(userId: Long, storeId: Long)
  
  class FavoriteStoreTable(tag: Tag) 
       extends Table[FavoriteStore](tag, "FAVORITE_STORE") {
    def userId = column[Long]("USER_ID")
    def storeId = column[Long]("STORE_ID")
    override def * = (userId, storeId) &lt;&gt; 
                (FavoriteStore.tupled, FavoriteStore.unapply)
  }
  </code></pre>
  
  <p>I would like to be able to write the following SQL query with Slick:</p>
  
  <pre><code>INSERT INTO favorite_store (user_id, store_id) VALUES (39, 8)
  WHERE NOT EXISTS 
      (SELECT * FROM favorite_store WHERE user_id = 39 AND store_id = 8)
  </code></pre>
  
  <p>Any idea?</p>