我正在使用pg
gem与Ruby进行PostgreSQL交谈。有没有 更好的方法来检查是否没有结果比使用res.ntuples == 0
?是否有更简洁的方法来检查PGResult是否为空?
conn = PGconn.connect config
cmd = "select * from labels inner join labels_mail using(label_id) " +
"where labels_mail.mail_id = $1 and labels.name = $2"
res = conn.exec(cmd, [mail_id, mailbox])
if res.ntuples == 0 # <=== is there a better way to check this?
cmd = "insert into labels_mail (mail_id, label_id) values ($1, $2)"
conn.exec(cmd, [mail_id, label_id(mailbox)])
end
只是作为小费,我*高度*推荐使用[续](http://sequel.rubyforge.org/)ORM宝石在Postgres或MySQL,或几乎任何其他数据库。它允许您使用原始SQL或数据集,或充当与ActiveRecord类似的全面建模ORM。 – 2011-04-20 02:19:45
谢谢。但出于性能方面的原因,我想保持与金属的接近。我用最少的开销启动时间来写东西。我尝试过积极的记录方法,而且启动时间远远不够。 – dan 2011-04-20 16:23:01