単一のStringカラムを使用して一連の名前を表す非常に単純なMySQLテーブルがあります。私はSlickのinsertOrUpdate
を使用したいが、間違ったMySQLを生成しているため、エラーが発生する。具体的には、それを更新するために何を指定していないので、これが失敗Slick 3が、1つのカラムテーブルに対して正しくないMySQLアップサートステートメントを生成しています
insert into `TABLE1_NAME` (`column`) values ('value') on duplicate key update
を実行したいです。同じ列の2つの列を持つテーブルは、
insert into `TABLE2_NAME` (`key`, `other_col`) values ('value1', 'value2') on duplicate key update `other_col`=VALUES(`other_col`)
のような文で上手くアップしていますか? TABLE1
の主キーを設定します。私たちはテーブルプロジェクションのマッピングを間違っているかもしれません。私たちはSlick 3.1.1を使用しています。
class Table1(tag: Tag) extends Table[Table1Record](tag, "TABLE1_NAME") {
def value = column[String]("value", O.PrimaryKey, O.Length(254))
def * = (value) <> (Table1Record, Table1Record.unapply)
}
class Table2(tag: Tag) extends Table[Table2Record](tag, "TABLE2_NAME") {
def value1 = column[String]("value1", O.PrimaryKey, O.Length(254))
def value2 = column[String]("value2", O.Length(254))
def * = (value1, value2) <> (Table2Record.tupled, Table2Record.unapply)
}
です。だから私が本当に欲しいのは、[この質問](https://stackoverflow.com/questions/30706193/insert-if-not-exists-in-slick-3-0-0)のように "存在しない場合は挿入してください" 。ありがとう! – broadmonkey