vendredi 22 avril 2016

How to update or insert with SQLite.swift

I want to update the column of a row if the row already exists, but if it doesn't exist yet then I want to insert a new row.

Related questions

This type of question is popular for SQL in general

and SQLite in particular

Looking for SQLite.swift implementation

I'm trying to save development time by using the SQLite.swift wrapper for iOS development. I chose this framework because it was recommended on raywenderlich.com. I think it would be useful to have an example of the syntax for an update or insert.

Strategy

In this answer, Sam Saffron says:

If you are generally doing updates I would ..

  1. Begin a transaction
  2. Do the update
  3. Check the rowcount
  4. If it is 0 do the insert
  5. Commit

If you are generally doing inserts I would

  1. Begin a transaction
  2. Try an insert
  3. Check for primary key violation error
  4. if we got an error do the update
  5. Commit

This way you avoid the select and you are transactionally sound on Sqlite.

That makes sense to me, so in my answer below I am providing an example of the "generally doing updates".

Aucun commentaire:

Enregistrer un commentaire