У меня есть структура таблицы, как показано ниже:Slick 3.0.0 AutoIncrement Composite Key
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 name version
1 n1 1
1 n2 2
2 xyz 1
3 bmp 1
3 abc 2
Так выше структура имеет идентификаторами 1 и 3 в версиях 1 и 2, я хочу, чтобы иметь версию автоматического приращения. Если есть встроенная функция, я бы хотел ее использовать. Если нет, я должен сначала выпустить select, добавить 1 t версию и создать новую запись. Какие-либо предложения?
При использовании выберите первый вариант, в какой-то момент, вы будете иметь повторяющиеся ключевые проблемы. Если два запроса выполняются одновременно. –
Итак, что может быть лучшим способом сделать это? Я хочу воздержаться от использования триггеров! – sparkr
Вы не можете. Вам придется использовать триггеры, если вы хотите гарантировать, что дублирующих ключей не будет. –