【发布时间】:2020-12-09 17:48:44
【问题描述】:
期待PostgreSQL中的等价代码,特别是如何实现SAVE TRAN、@@trancount和@@error。
以下代码在 MSSQL 中,需要迁移:
CREATE PROCEDURE [APPLY_TRANSCO_CASH]
AS
BEGIN
DECLARE
@trancount int,
@error int,
@rowcount int,
@ret int
SELECT @trancount = @@trancount
IF(@trancount <> 0)
BEGIN
SAVE TRAN tran_APPLY_TRANSC
END
ELSE
BEGIN
BEGIN TRAN tran_APPLY_TRANSC
END
UPDATE ELIOT_TMp
SET Country = 'v'
SELECT @error = @@error, @rowcount = @@rowcount
IF (@error <> 0)
BEGIN
SELECT @ret = -1
GOTO Error
END
SELECT @ret = @rowcount
GOTO Normal_End
Normal_End:
IF (@trancount=0)
BEGIN
COMMIT TRANSACTION
END
RETURN @ret
Error:
ROLLBACK TRANSACTION tran_APPLY_TRANSC
RETURN @ret
【问题讨论】:
标签: transactions database-migration plpgsql postgresql-11