SQLite3:如何在触发器中连接SELECT RAISE()的消息?
使用SELECT RAISE from SQLite3触发器并不总是提供足够的上下文来调试格式错误的SQL。我想提供一个更详细的错误消息 最明显的尝试不起作用: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(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);
然而,这并没有真正帮助解决问题,比如说,想要把项目放入错误消息中。三年后,我认为答案仍然是否定的,但希望有人能证明我错了……三年后,我认为答案仍然是否定的,但希望有人能证明我错了。。。