4
使用bookshelfjs,我想將記錄添加到包含其他非空列的連接表中。使用UpdatePivot附加「Not Null」列
例如,用戶表和帳戶表具有accounts_users的連接表。
var Account = Bookshelf.Model.extend({
tableName: 'accounts'
});
var User = Bookshelf.Model.extend({
tableName: 'users',
accounts: function() {
return this.belongsToMany(Account);
}
});
連接表還有一個「order」列NOT NULL。
CREATE TABLE accounts_users
(
account_id integer NOT NULL,
user_id integer NOT NULL,
"order" integer NOT NULL,
CONSTRAINT accounts_users_account_id_foreign FOREIGN KEY (account_id)
REFERENCES accounts (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT accounts_users_user_id_foreign FOREIGN KEY (user_id)
REFERENCES users (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
是否可以將用戶中的記錄附加到帳戶中的記錄中,並同時設置訂單值?
每一個可以單獨使用來完成:
user.related("accounts").attach(<USER_ID>);
和
user.related("accounts").updatePivot({order: 1}); // with WHERE clause.
單獨運行每個命令,因爲第一個將不能滿足NOT NULL限制將失敗。有沒有辦法使用書架一起執行兩個命令?使用Knex.Raw可以輕鬆完成,但如果可能的話,我希望使用書架來完成。