加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL异常处理

发布时间:2020-12-13 16:38:12 所属栏目:百科 来源:网络整理
导读:我是PostgreSQL的新手。任何人都可以更正此查询。 BEGIN TRANSACTION;BEGIN; CREATE TABLE "Logs"."Events" ( EventId BIGSERIAL NOT NULL PRIMARY KEY,PrimaryKeyId bigint NOT NULL,EventDateTime date NOT NULL DEFAULT(now()),Action varchar(12) NOT NU
我是PostgreSQL的新手。任何人都可以更正此查询。
BEGIN TRANSACTION;

BEGIN;
    CREATE TABLE "Logs"."Events"
    (
        EventId BIGSERIAL NOT NULL PRIMARY KEY,PrimaryKeyId bigint NOT NULL,EventDateTime date NOT NULL DEFAULT(now()),Action varchar(12) NOT NULL,UserId integer NOT NULL REFERENCES "Office"."Users"(UserId),PrincipalUserId varchar(50) NOT NULL DEFAULT(user)
    );

    CREATE TABLE "Logs"."EventDetails"
    (
        EventDetailId BIGSERIAL NOT NULL PRIMARY KEY,EventId bigint NOT NULL REFERENCES "Logs"."Events"(EventId),Resource varchar(64) NOT NULL,OldVal varchar(4000) NOT NULL,NewVal varchar(4000) NOT NULL
    );


    COMMIT TRANSACTION;
    RAISE NOTICE 'Task completed sucessfully.'
EXCEPTION;
    ROLLBACK TRANSACTION;
    RAISE ERROR @ErrorMessage,@LineNumber,@ErrorState --how to catch errors and display them????
END;

问题:

>如何在T-SQL中打印“PRINT”等消息?
>如何提出异常信息的错误?

要捕获错误消息及其代码:
do $$


begin


    create table yyy(a int);
    create table yyy(a int); -- this will cause an error



exception when others then 

    raise notice 'The transaction is in an uncommittable state. '
                 'Transaction was rolled back';

    raise notice '% %',SQLERRM,SQLSTATE;
end;


$$ language 'plpgsql';

还没有找到行号

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读