0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[slick][MySQL]insertOrUpdateのupdateが動作しなくてハマった

Posted at

slickのinsertOrUpdateは、upsert(primary keyのカラムの値を比較し、レコードがすでに存在するならinsert、存在しないならupdateする)を可能にする便利な機能です。
このupdateがうまく動かずハマってしまいましたが、わかってしまえばすごく単純でした。

コード上のスキーマ定義ではO.PrimaryKeyを指定していたのですが…

class Coffees(tag: Tag) extends Table[(String, Int, Double, Int, Int)](tag, "COFFEES") {
  def name = column[String]("COF_NAME", O.PrimaryKey)
  def supID = column[Int]("SUP_ID")
  def price = column[Double]("PRICE")
  def sales = column[Int]("SALES", O.Default(0))
  def total = column[Int]("TOTAL", O.Default(0))
  def * = (name, supID, price, sales, total)
}

凡ミスで、実際のMySQLのテーブルではprimary key指定を忘れていました。。。

コードで書いているだけでは正常に動かないみたいですね。
slickから実際のMySQLのスキーマもで確認する処理が走っているようですね

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?