SLICK 3.0.0自动增量合成关键点 [英] Slick 3.0.0 AutoIncrement Composite Key

查看:0
本文介绍了SLICK 3.0.0自动增量合成关键点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个表结构,如下所示:

Table1:
  id: Int
  name: String
  version: Int

表格的相应平滑表示为:

  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,我想让版本自动递增。如果有内置的功能,我想使用它。如果没有,我必须首先发出一个SELECT命令,添加1个版本并创建一个新记录。有什么建议吗?

推荐答案

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

select max(version) from Table1 where id = x

这篇关于SLICK 3.0.0自动增量合成关键点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆