如何检查SQL中的错误?

如何检查SQL中的错误?,sql,error-handling,Sql,Error Handling,我使用SQLite和postgresql。假设一个用户想要发表评论。有几件事我需要检查一下 如果是有效会话(用户已登录) 如果用户有这样做的权限(检查评论是否在锁定线程中,或者用户是否验证了他们的电子邮件并且没有锁定/只读模式) 检查线程是否仍然存在 这里有一些未经测试的代码。希望我没有杀了它,它基本上是正确的。 如何检测会话是否为0行(登录错误)、帐户是否激活(标志==0)以及线程是否接受注释(标志==0) 我使用dapper.net for C#和C中的原始SQL api。如何检测它是否是会

我使用SQLite和postgresql。假设一个用户想要发表评论。有几件事我需要检查一下

  • 如果是有效会话(用户已登录)
  • 如果用户有这样做的权限(检查评论是否在锁定线程中,或者用户是否验证了他们的电子邮件并且没有锁定/只读模式)
  • 检查线程是否仍然存在
  • 这里有一些未经测试的代码。希望我没有杀了它,它基本上是正确的。 如何检测会话是否为0行(登录错误)、帐户是否激活(标志==0)以及线程是否接受注释(标志==0) 我使用dapper.net for C#和C中的原始SQL api。如何检测它是否是会话/帐户/线程错误?我是否应该执行3个单独的查询来检查是否有返回的空行,然后执行写入操作?因为这听起来像是等待发生的并发错误

    insert into Comment(text, date, thread, author)
    select @text, datetime_now(), t.ThreadID, (
        select a.AccountID
        from session s
            s.data = @session
        join Account a
            on a.AccountID = s.AccountID
        where
            a.flags = 0 -- Not banned/deactivated/locked
    ) as author
    from thread t
    where
        t.ThreadID = thread_id AND
        t.flags = 0 -- Not locked/deleted