当前位置: 首页 > 知识库问答 >
问题:

SQLITE3:删除记录错误:外键不匹配

楚翰
2023-03-14

我正试图从表用户中删除一条记录。

尝试用DELETE-语句(从user_id=10的html" target="_blank">用户中删除)以及在我的DB浏览器中删除它,但我得到了上面的错误,特别是它说:“删除记录错误:外键不匹配-”games“引用”groups“(从”main“中删除。”users“WHERE rowid in('10');)”。在我的架构下面:

创建表'group'('group_name'VARCHAR(255)NOT NULL,'turn'INTEGER NOT NULL,'user_id'INTEGER,外键('user_id')在更新级联上引用'user'('user_id')在删除级联上引用);

创建表游戏(game_id整数主键、活动整数、turn整数、group_name VARCHAR(255)不为空,外键(turn)在更新级联上引用组(turn_id)在删除级联上引用组(turn_id),外键(group_name)在更新级联上引用组(group_name)在删除无动作);

为什么这是个问题?user_id在“游戏”中甚至不是外键??谢谢!

共有1个答案

西门凯康
2023-03-14

最后的问题是我的SQLite(3.11.2)DB浏览器,它的GUI允许删除,但实际上不起作用。当我在bash中再次绑定并关闭并重新启动DB浏览器时,排已经消失了。没有洞察力,但我想我还是会发帖,以防其他人遇到这个。

 类似资料:
  • 问题内容: 我有一对多关系的两个数据库表。数据如下所示: 结果集: 我想删除所有应用程序,但最新的除外。换句话说,每个学生都只能将一个应用程序链接到该应用程序。使用上面的示例,数据应如下所示: 我将如何构造我的DELETE语句以过滤出正确的记录? 问题答案: 考虑到评论中的长时间讨论,请注意以下几点: 上面的语句 将 在任何正确实现语句级读取一致性的数据库上运行,而不管语句运行时对表的任何更改。

  • 删除记录命令用于从数据库中完全删除一个或多个记录。 以下语句是命令的基本语法。 以下是有关上述语法中选项的详细信息。 - 指定如何锁定加载和更新之间的记录。有两个选项来指定默认和记录。 - 指定要返回的表达式而不是记录数。 - 定义要更新的最大记录数。 - 定义在超时之前允许更新运行的时间。 注 - 请勿使用删除“顶点”或“边”,因为它会影响图的完整性。 示例 让我们考虑在前一章中创建的表。 编号

  • RemoveResult remove(RemoveRequest request) 功能 删除某个表的一条记录,可以删除全部或者部分属性,也可以指定条件,当条件成立时才删除成功 消耗一个单位写配额,如果带了条件,还消耗一个单位读配额(另外如果创建了EAGER类型的二级索引,每个Eager二级索引需要1个额外读配额) 方法参数 request : RemoveRequest : required

  • 问题内容: 我有一个表X,该表具有一个自动递增的ID列作为其主键。我还有其他表A,B,C和D,它们补充了表X中的信息。每个表都必须包含一个引用表X中ID的列。我已经这样做了,并且在我的代码(Java)中,将每个条目的ID返回到表X并在插入其他表时使用该ID的方法。一切都很好。 现在,建议我将表A,B,C和D上的ID列分配为FOREIGN KEYS,因为“这是正确的做法”。我做到了 现在,从表X中删

  • (警告:我不是MySQL专业人士,我使用工作台代替知道命令,所以我的问题可能很简单) 我试图重命名表(user)中的主键(userID),但MySQL不允许(错误号150)。经过一番挖掘,我似乎必须先删除外键,然后才能重命名主键。 因此,在Workbench中,我转到下一个表(问题)并选择alter table,然后转到外键选项卡。我在左侧窗口中选择唯一的外键(fk\u question\u us

  • 问题内容: 我将Ruby与SQLite3结合使用,但不幸的是,我在Sqlite3中使用外键的尝试均未成功。根据,安装了版本3.7.13。据我所知,Sqlite3从3.6.x版本开始支持外键。 我知道默认情况下外键是禁用的,必须使用来激活。在我的db-create-script Ruby中,我正在执行以下操作: 不幸的是,我可以愉快地将行插入未知的应用程序ID,它可以工作,但当然不行。 有趣的是:直