ver*_*thS 2 migration node.js adonis.js
我有这张表:
BookUnit
-------------------
id PK
unit PK
sequence PK
book_id FK
Run Code Online (Sandbox Code Playgroud)
所以,我可以记录数据:
id: 1
unit: 1
sequence: 1
id: 2
unit: 1
sequence: 2
Run Code Online (Sandbox Code Playgroud)
但我不能有超过一个重复:
Run Code Online (Sandbox Code Playgroud)id: 3 unit: 1 sequence: 2
所以,我需要创建一个包含 id、序列和单位的组合主键。
我尝试这样:
class BookUnitSchema extends Schema {
up () {
this.create('book_unit', (table) => {
table.increments()
table.integer('book_id').references('id').inTable('books').notNullable()
table.integer('unit').notNullable().primary()
table.integer('sequence').notNullable().primary()
table.string('description')
table.integer('qt_question')
table.boolean('status').defaultTo(false)
table.integer('user_id').references('id').inTable('users')
table.timestamps()
})
}
down () {
this.drop('book_unit')
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到:
错误:不允许表“book_unit”有多个主键
我在文档示例中没有找到具有多个主键的...
你也使用初级
table.primary(['unit','sequence'])
Run Code Online (Sandbox Code Playgroud)
这对我有用
更多信息请访问knex.js