gpt4 book ai didi

android - sqlite约束失败错误代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:55 24 4
gpt4 key购买 nike

我有两个表专辑和歌曲,每首歌曲都引用了校友的 ID。

专辑列表:

CREATE TABLE albums
(id INTEGER PRIMARY KEY ASC,
name TEXT,
additional TEXT)

歌表:

CREATE TABLE songs
(id INTEGER PRIMARY KEY ASC,
album_fk INTEGER NOT NULL,
title TEXT,
url TEXT,
duration BIGINT NOT NULL)

我还有一个触发器来检查我删除专辑时是否有现有歌曲:

CREATE TRIGGER trigger_on_delete
BEFORE DELETE ON albums
FOR EACH ROW BEGIN
SELECT RAISE(FAIL,'album has songs cannot be deleted')
WHERE (SELECT album_fk FROM songs WHERE album_fk = OLD.id) IS NOT
NULL;)
END

一切正常,但有时

Exception: android.database.sqlite.SQLiteConstraintException: error
code 19: constraint failed
Stack Trace :
android.database.sqlite.SQLiteStatement.native_execute(Native Method)
android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:
66)

当我尝试删除相册时抛出。我的删除方法只是通过 id 删除相册。不好的是我无法复制它,所以我无法提供太多信息。我尝试了删除相册的不同方案,但我从未遇到过此异常。

所以任何想法都可以调查这个问题。专辑表中没有任何限制,那么什么会导致这种异常?任何帮助将不胜感激。

最佳答案

这太不公平了。如果您在 PC 上运行此代码,一切正常,如果您尝试删除包含歌曲的专辑,异常会显示:无法删除专辑中的歌曲”,但似乎 android 人员无法处理来自 sqlite 的正确 RAISE,并且会抛出异常: android.database.sqlite.SQLiteConstraintException:错误代码 19:约束失败。

关于android - sqlite约束失败错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3371307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com