草庐IT

python - 在 Python 的 sqlite3 中使用外键

我正在编写一个程序,通过python创建一个sqlite3数据库。我有一个作者表(AuthorID、姓名)和第二个书表(BookID、标题、AuthorID),我创建了这些表,如下所示:Authors=sqlite3.connect('Authors.db')Authors.execute('''CREATETABLEAuthors(AuthorIDINTPRIMARYKEY,NameTEXT);''')Authors.close()Books=sqlite3.connect('Books.db')Books.execute('''CREATETABLEBooks(BookIDINTP

sqlite - 是什么导致这个 sqlite 外键不匹配?

我已经checkoutthisquestion,并认为我有答案-但后来我觉得不对。我有以下精简示例:CREATETABLEpipelines(nameVARCHARNOTNULL,ownerVARCHARNOTNULL,descriptionVARCHAR,PRIMARYKEY(name,owner),FOREIGNKEY(owner)REFERENCESuser(id));CREATETABLEtasks(idINTEGERNOTNULL,titleVARCHAR,pipelineVARCHAR,ownerVARCHAR,PRIMARYKEY(id),FOREIGNKEY(pipel

sqlite - 是什么导致这个 sqlite 外键不匹配?

我已经checkoutthisquestion,并认为我有答案-但后来我觉得不对。我有以下精简示例:CREATETABLEpipelines(nameVARCHARNOTNULL,ownerVARCHARNOTNULL,descriptionVARCHAR,PRIMARYKEY(name,owner),FOREIGNKEY(owner)REFERENCESuser(id));CREATETABLEtasks(idINTEGERNOTNULL,titleVARCHAR,pipelineVARCHAR,ownerVARCHAR,PRIMARYKEY(id),FOREIGNKEY(pipel

android - SQLite 外键约束失败(代码 787)

我在尝试升级数据库时遇到了ForeignKeyConstraintFailed(code787)错误。我所做的唯一更改是尝试向我的InsertStatus添加第4个条目。我环顾四周,我读到使用ONDELETECASCADE应该可以解决我的问题,所以我尝试将它放在我所有的FK引用中并再次尝试,但仍然是同样的问题。Logcat指向我的onUpgrade和其中的所有DROPTABLES(我尝试一次删除一个,看看哪些是坏的,显然它们都是).我使用ONDELETECASCADE错了吗?还是我的代码中有其他内容?插入状态voidInsertStatus(SQLiteDatabasedb){Cont

android - SQLite 外键约束失败(代码 787)

我在尝试升级数据库时遇到了ForeignKeyConstraintFailed(code787)错误。我所做的唯一更改是尝试向我的InsertStatus添加第4个条目。我环顾四周,我读到使用ONDELETECASCADE应该可以解决我的问题,所以我尝试将它放在我所有的FK引用中并再次尝试,但仍然是同样的问题。Logcat指向我的onUpgrade和其中的所有DROPTABLES(我尝试一次删除一个,看看哪些是坏的,显然它们都是).我使用ONDELETECASCADE错了吗?还是我的代码中有其他内容?插入状态voidInsertStatus(SQLiteDatabasedb){Cont

sql - 多对多关系中的外键约束

上下文我们正在为介绍构建一个博客。数据库类(class)项目。在我们的博客中,我们希望能够在帖子上设置Labels。Labels不能单独存在,它们只有在与Posts相关时才会存在。这样,未被任何帖子使用的标签不应保留在数据库中。多个Label可以属于一个Post,多个Post可以使用一个Label.我们同时使用SQLite3(本地/测试)和PostgreSQL(部署)。实现这是我们用来创建这两个表以及关系表的SQL(SQLite3风格):帖子CREATETABLEIFNOTEXISTSPosts(idINTEGERPRIMARYKEYAUTOINCREMENT,authorIdINTE

sql - 多对多关系中的外键约束

上下文我们正在为介绍构建一个博客。数据库类(class)项目。在我们的博客中,我们希望能够在帖子上设置Labels。Labels不能单独存在,它们只有在与Posts相关时才会存在。这样,未被任何帖子使用的标签不应保留在数据库中。多个Label可以属于一个Post,多个Post可以使用一个Label.我们同时使用SQLite3(本地/测试)和PostgreSQL(部署)。实现这是我们用来创建这两个表以及关系表的SQL(SQLite3风格):帖子CREATETABLEIFNOTEXISTSPosts(idINTEGERPRIMARYKEYAUTOINCREMENT,authorIdINTE

android - 如何获取有关在 android sqlite 中导致外键约束的列的信息?

我想知道是否可以获得关于SQLiteConstraintException:foreignkeyconstraint异常的信息。我需要知道哪个列导致违反了外键约束。有没有办法从异常中得到这些信息?另外,如果我能得到该约束的名称就更好了。 最佳答案 我想你可以在下面的问题中找到答案:PossibletogetspecificerrordetailsfromAndroidSQLiteConstraintException?查看antoino发布的解决方案2。 关于android-如何获取有关

android - 如何获取有关在 android sqlite 中导致外键约束的列的信息?

我想知道是否可以获得关于SQLiteConstraintException:foreignkeyconstraint异常的信息。我需要知道哪个列导致违反了外键约束。有没有办法从异常中得到这些信息?另外,如果我能得到该约束的名称就更好了。 最佳答案 我想你可以在下面的问题中找到答案:PossibletogetspecificerrordetailsfromAndroidSQLiteConstraintException?查看antoino发布的解决方案2。 关于android-如何获取有关

sql - 为什么引用 SQLite rowid 会导致外键不匹配?

SQLiteversion3.7.92011-11-0100:52:41sqlite>PRAGMAforeign_keys=1;sqlite>CREATETABLEfoo(name);sqlite>CREATETABLEbar(foo_rowidREFERENCESfoo(rowid));sqlite>INSERTINTOfooVALUES('baz');sqlite>SELECTrowid,nameFROMfoo;1|bazsqlite>INSERTINTObar(foo_rowid)VALUES(1);Error:foreignkeymismatch为什么会出现这个错误?这是一个D