使用sequelizejs保存前获取ID

时间:2014-04-30 10:01:40

标签: node.js express sequelize.js

我希望在保存到数据库之前获取项目的ID ...我知道ID是在保存期间生成的,但有解决方案吗?

var photo = dbContext.photo.build(photo);
console.log(photo.id); // doesn't work
photo.save().success(function(photo) {
    console.log(photo.id); // works
    callback(photo);
});

1 个答案:

答案 0 :(得分:0)

从理论上讲,您可以查询由自动增量生成的下一个ID,请参阅此How to get the next auto-increment id in mysql

但是,请记住,您必须在事务中执行此操作,在查询之前锁定表,以防止其他进程插入并占用您刚刚获得的ID。看看https://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

但是,这真的很复杂,非常非常快。你确定没有其他方法可以解决这个问题吗?保存记录后无法更新名称,这会非常简单吗?