Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite3:如何在触发器中连接SELECT RAISE()的消息?_Sqlite_Triggers - Fatal编程技术网

SQLite3:如何在触发器中连接SELECT RAISE()的消息?

SQLite3:如何在触发器中连接SELECT RAISE()的消息?,sqlite,triggers,Sqlite,Triggers,使用SELECT RAISE from SQLite3触发器并不总是提供足够的上下文来调试格式错误的SQL。我想提供一个更详细的错误消息 最明显的尝试不起作用: SELECT RAISE(ROLLBACK, 'test' || 'ing') 安装触发器时,SQLite3拒绝,并显示错误消息:near | |:syntax error 这建议: SELECT RAISE(ROLLBACK, ERROR_TEXT) FROM (SELECT 'test' || 'ing' ERROR_TEXT);

使用SELECT RAISE from SQLite3触发器并不总是提供足够的上下文来调试格式错误的SQL。我想提供一个更详细的错误消息

最明显的尝试不起作用:

SELECT RAISE(ROLLBACK, 'test' || 'ing')
安装触发器时,SQLite3拒绝,并显示错误消息:near | |:syntax error

这建议:

SELECT RAISE(ROLLBACK, ERROR_TEXT) FROM (SELECT 'test' || 'ing' ERROR_TEXT);
。。。但这对我不起作用。SQLite3不拒绝,但触发器错误消息为error:靠近第95行:error_TEXT

有什么想法吗


仅供参考:我正在使用最新版本的SQLite3:3.8.7.1开发Debian Linux sid-Leading edge。RAISE函数不接受表达式;第二个参数必须是常量字符串或标识符


不可能有动态错误消息。

RAISE函数不接受表达式;第二个参数必须是常量字符串或标识符

不可能有动态错误消息。

答案仍然是否定的:,但我希望这条提示可能会对某些人有所帮助

我在Android上使用SQLite 3.8.6

不能像以下那样连接结果:

select RAISE(ABORT, 'Cannot change Item(' || old._id || ').parent nullity: '
    || ifNULL(old.parent, 'NULL')
    || ' -> '
    || ifNULL(new.parent, 'NULL')
where (old.parent is null) <> (new.parent is null);
然而,这并不能真正解决问题,比如说,想要将项目放入错误消息中。_id。

答案仍然是否定的,但我希望这一技巧可以帮助一些人

我在Android上使用SQLite 3.8.6

不能像以下那样连接结果:

select RAISE(ABORT, 'Cannot change Item(' || old._id || ').parent nullity: '
    || ifNULL(old.parent, 'NULL')
    || ' -> '
    || ifNULL(new.parent, 'NULL')
where (old.parent is null) <> (new.parent is null);

然而,这并没有真正帮助解决问题,比如说,想要把项目放入错误消息中。

三年后,我认为答案仍然是否定的,但希望有人能证明我错了……三年后,我认为答案仍然是否定的,但希望有人能证明我错了。。。