【发布时间】:2010-11-23 22:09:00
【问题描述】:
根据 pg 文档 here:,我已经在我们的 pg 8.3 数据库之一上设置了基于触发器的分区方案。基本上,我有一个父表,还有几个子表。父级上的插入触发器将父级上的任何插入重定向到适当的子表中——这很好用。
然而,ActiveRecord pg 适配器似乎依赖 postgres INSERT ... RETURNING "id" 扩展来获取初始插入后返回行的 id。但触发器似乎破坏了 RETURNING 子句——尽管行创建正确,但没有返回 id。
虽然我认为这种行为是有道理的——毕竟,主表中没有插入任何内容,但我确实需要找到某种解决方法,因为将插入其他需要行 ID 的子记录刚刚插入的行。
我想我可以在插入之前向行添加某种唯一 id,然后在插入之后使用此键重新读取它,但这看起来很笨拙。有没有人有更好的解决方法?
【问题讨论】:
标签: ruby-on-rails postgresql partitioning