光滑3.0.0自动增量复合键

时间:2015-05-24 07:31:26

标签: slick

我有一个表结构如下:

Table1:
  id: Int
  name: String
  version: Int

表的相应Slick表示将是:

  class Table1(tag: Tag) extends Table[(Int, String, Int)](tag, "TABLE1") {
    def id = column[Int]("ID")
    def name = column[String]("NAME")
    def version = column[Int]("VERSION")

    def pk = primaryKey("pk_a", (id, version))
  }

如何让版本自动增加相应的ID?

我可以使用以下元素:

id name version
1  n1   1
1  n2   2
2  xyz  1
3  bmp  1
3  abc  2 

所以上面的结构在版本1和版本2中都有id 1和3,我希望版本自动增加。如果有内置功能,我想使用它。如果没有,我必须首先发出一个选择,添加1吨版本并创建一个新记录。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您必须使用触发器。这样在插入时,您可以要求MySQL或Postgresql将version的值设置为SQL查询的结果:

select max(version) from Table1 where id = x