【发布时间】:2020-02-29 11:57:57
【问题描述】:
我正在尝试从表用户中删除一条记录。
尝试使用 DELETE 语句(DELETE FROM users WHERE user_id=10)以及在我的数据库浏览器中删除它,但我收到上述错误,特别是它说:“错误删除记录:外键不匹配 -”游戏" 引用 "groups" (DELETE FROM "main"."users" WHERE rowid IN ('10');)"。 在我的架构下方:
创建表用户 ( user_id 整数主键, 名称 VARCHAR(255) 非空, 哈希 VARCHAR(255) 非空, 唯一(名称));
创建表“组”( 'group_name' VARCHAR(255) NOT NULL, '转' INTEGER NOT NULL, 'user_id'整数, FOREIGN KEY ('user_id') REFERENCES 'users'('user_id') 更新级联 删除级联 );
创建表游戏( game_id 整数主键, 活跃的整数, 转整数, group_name VARCHAR(255) 非空, FOREIGN KEY (turn) REFERENCES groups(turn_id) 更新级联 在删除级联时, FOREIGN KEY (group_name) REFERENCES groups(group_name) 更新级联 删除无操作 );
为什么会出现这个问题? user_id 甚至不是“游戏”中的外键??谢谢!
【问题讨论】:
-
删除用户会级联删除匹配的组行,这会导致匹配的游戏行……什么都不做,导致 FK 不匹配。
标签: sqlite foreign-keys