我想在保存到数据库之前获取项目的 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);
});
最佳答案
理论上,你可以查询下一个由自增生成的id,见这个How to get the next auto-increment id in mysql
但是,请记住,您必须在事务中执行此操作,在查询之前锁定表,以防止其他进程插入并占用您刚刚获得的 id。看看 https://dev.mysql.com/doc/refman/5.0/en/lock-tables.html
然而,这会变得非常非常复杂,非常非常快。您确定没有其他方法可以解决此问题吗?你不能在保存记录后更新名称,那会容易得多吗?
关于node.js - 在使用 sequelizejs 保存之前获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23385155/