0
可以在Rails中插入行并将id的值分配给特定列,例如如果我有表,该表具有ID和LINK列,其中LINK是链接到同一个表:在列中插入与主键相同值的列
ID | LINK
1 | 1
2 | 1
3 | 1
插入列2和3是容易的,但是是否有任何方式插入单INSERT语句列1?
这是可能通过rails语法或我需要自定义SQL(在PostgreSQL)?
[当然,这可以用INSERT/UPDATE完成,但我需要在这个表上禁用更新]
TX Zaharije
这不是问题。问题是,当我想要插入新的雇员这是自我经理:emp = Employee.new({:manager_id => emp.id})我需要经理是自己的经理(不适合雇用的情况下),并插入在单个INSERT语句中。我可以这样做:emp = Employee.new()emp.save emp.manager = emp emp.save但是,这将触发INSERT和UPDATE(2语句)。我需要在一个声明中执行。只有这样我才能看到的是创建自定义SQL(PostgreSQL数据库)nextval和currval的值和MANAGER_ID – Zaharije
您可以使用像before_save或after_create回调设置自加入外键,但它仍然将不得不插入新行以获取ID,然后执行更新。或者,您可以在MySQL中查询下一行ID,但这是不可靠的,也是一个坏主意。你是否预优化以避免2次更新? – squarism
有点过时了 - 我们有存储金钱交易的DB,我们不想允许任何种类的更新。由于我伤心过时 - 我们重组了数据库,并没有同样的问题。 TX。 – Zaharije