ERROR: cannot ALTER TABLE because it has pending trigger events while attempting to drop a column in a table
ERROR: cannot ALTER TABLE because it has pending trigger events while attempting to drop a column in a table
我在我的 liquibase 变更集中写了一个 sql 标签。此 sql 代码假设在名为 "Purchase" 的 table 中进行数据迁移。所以我有以下 sql 个查询:
UPDATE purchase
SET location_id = (SELECT location_id FROM shop WHERE shop.id = purchase.shop_id);
然后,
ALTER TABLE purchase DROP COLUMN shop_id;
但是我在尝试执行第二个查询时收到以下错误,该查询应该删除 table Purchase
中的列 'shop_id'
ERROR: cannot ALTER TABLE because it has pending trigger events
请问这个错误是什么时候抛出的,我该如何解决。
在我的liquibase changese中,我的sql标签是这样写的
<sql>
UPDATE purchase
SET location_id = (SELECT location_id FROM shop WHERE shop.id = purchase.shop_id);
ALTER TABLE purchase DROP COLUMN shop_id;
</sql
有人可以帮助我吗?预先感谢您的帮助
听起来您需要在更改和更新之间提交您的更改。
试试这个:
UPDATE purchase
SET location_id = (SELECT location_id FROM shop WHERE shop.id = purchase.shop_id);
COMMIT;
BEGIN;
ALTER TABLE purchase DROP COLUMN shop_id;
"BEGIN;" 是可选的,但听起来您的框架正在使用事务,所以我将其包括在内并进行测试以确保更改实际上 "takes"。
我在我的 liquibase 变更集中写了一个 sql 标签。此 sql 代码假设在名为 "Purchase" 的 table 中进行数据迁移。所以我有以下 sql 个查询:
UPDATE purchase
SET location_id = (SELECT location_id FROM shop WHERE shop.id = purchase.shop_id);
然后,
ALTER TABLE purchase DROP COLUMN shop_id;
但是我在尝试执行第二个查询时收到以下错误,该查询应该删除 table Purchase
中的列 'shop_id'ERROR: cannot ALTER TABLE because it has pending trigger events
请问这个错误是什么时候抛出的,我该如何解决。
在我的liquibase changese中,我的sql标签是这样写的
<sql>
UPDATE purchase
SET location_id = (SELECT location_id FROM shop WHERE shop.id = purchase.shop_id);
ALTER TABLE purchase DROP COLUMN shop_id;
</sql
有人可以帮助我吗?预先感谢您的帮助
听起来您需要在更改和更新之间提交您的更改。
试试这个:
UPDATE purchase
SET location_id = (SELECT location_id FROM shop WHERE shop.id = purchase.shop_id);
COMMIT;
BEGIN;
ALTER TABLE purchase DROP COLUMN shop_id;
"BEGIN;" 是可选的,但听起来您的框架正在使用事务,所以我将其包括在内并进行测试以确保更改实际上 "takes"。