Следующее должно работать с главной веткой ScalaQuery:
object myTable2 extends Table([Int, Int, Int])("myTable2") {
def pk1 = column[Int]("id1")
def pk2 = column[Int]("id2")
def fk1 = column[Int]("fk1")
def * = pk1 ~ pk2 ~ fk1
def pk = primaryKey("pk_myTable2", pk1 ~ pk2)
def fkMyTable1 = foreignKey("myTable1_fk", fk1, myTable1)(_.id)
}
В то время как fk1 в myTable2 является базовым столбцом, fkMyTable1 является определением внешнего ключа, которое удваивается как соединение внешнего ключа.Внешние ключи доступны в ScalaQuery 0.9.1, явные первичные ключи (с именами и с поддержкой нескольких столбцов) доступны в master на данный момент и будут включены в 0.9.2.Вы можете найти больше примеров в классах модульного тестирования ForeignKeyTest и PrimaryKeyTest.