1

我希望在添加列后在迁移文件中执行以下 SQL 查询(使用同一行中的现有列值更新新字段)

UPDATE users SET last_login=updated_at;

SQL 语句在数据库上执行时可以正常工作,但是在 rails 中我使用 ActiveRecord update_all 方法尝试了多种语法但没有成功

User.update_all("last_login=updated_at")

我收到以下错误

ActiveRecord::StatementInvalid: PGError: ERROR:  current transaction is aborted, commands ignored until end of transaction block
: UPDATE "users" SET last_login=updated_at

显然我的语法中缺少一些东西,但无法弄清楚是什么。谁能指出我正确的语法?

问候/J。

4

1 回答 1

3

语法确实是正确的,问题在于我不得不回滚之前的事务

User.update_all("last_login=updated_at")

该语句正常工作。

于 2012-04-30T05:32:53.877 回答