修改表添加外键失败

2024-04-25

我有3个表,它们都有innodb引擎:

video(url, title, desc, country,...) url -> primary key
videoCat(_url, category) {_url,category} -> primary key
favorite(fav_url, thumb_path) fav_url -> primary key

然后我这样做:

alter table favorite
add foreign key(fav_url) references video(url)
on delete cascade

一切都很顺利,但是当我尝试时:

alter table videoCat
add foreign key(_url) references video(url)
on delete cascade

I get:

1452 - 无法添加或更新子行:外键约束失败(bascelik_lookaroundyou.,约束#sql-efa_1a6e91a_ibfk_1外键(_url) 参考video (url) 删除级联时)

why???

附注我正在使用 phpmyadmin 版本。 3.3.9.2


表 videoCat 有一行或多行违反了外键约束。这通常是因为您有一行 _url 值在表视频中不存在。

您可以使用以下查询来检查这一点:

SELECT videoCat._url
FROM videoCat LEFT JOIN video ON videoCat._url = video.url
WHERE video.url IS NULL

EDIT

根据请求,这是一个删除这些讨厌的行的查询:

DELETE FROM videoCat
WHERE NOT EXISTS (
    SELECT *
    FROM video
    WHERE url = videoCat._url
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修改表添加外键失败 的相关文章

  • 从另一列计算出的列?

    给出下表 id value 1 6 2 70 有没有办法添加根据同一个表中的另一列自动计算的列 与 VIEW 类似 但属于同一个表的一部分 举个例子 calculated将是一半value Calculated应该会自动更新value变化
  • mysqldump 只导出一张表

    我使用 mysqldump 导出数据库 如下所示 mysqldump u root ppassword my database gt c temp my database sql 不知何故 它只导出一张表 我做错了什么吗 尝试这个 一般有三
  • 将数组写入文件的最佳方法? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想避免写入数据库并使用常量 数组作为 lang 文件等 i e lang array hello gt hello world 并能够从后台编
  • 选择特定值之后的项目

    说这是我的sql SELECT title author ISBN FROM bs books ORDER BY ISBN LIMIT 3 它只是从某个表中选择所有内容 标题 作者等 假设我想选择某个标题后面的所有项目 而不是按字母顺序或其
  • Sequel Pro / MAMP 在哪里存储本地数据库?

    我通过 Sequel Pro 和 MAMP 在我的计算机上创建了一些数据库 并运行 localhost 来查看它们 但是 我全新安装了 Mac OS Lion 但忘记将数据库备份到 sql 文件 我会定期备份文件 并预装计算机的副本 有谁知
  • Spring Boot MultipartFile上传getOriginalFileName根据浏览器不同而不同

    我使用的是 spring boot 1 5 7 RELEASE 版本 我使用以下方法上传文件 Autowired private MyService mySerice RequestMapping value uploadFile meth
  • 将内部联接和 where 子句添加到 INSERT INTO ON DUPLICATE KEY UPDATE

    我从 INSERT INTO ON DUPLICATE KEY UPDATE MySQL 语句开始 INSERT INTO Table1 field1 field2 VALUES 1 2 ON DUPLICATE KEY UPDATE fi
  • 如何对表的选定列进行 mysql 转储

    我有一个要求 我必须仅对表的一列进行 mysql 转储 由于该表有太多列 我不想转储整个表 我必须将表的转储从一台服务器转移到另一台服务器 知道我该怎么做吗 如果您想获取包含架构的 mysql 转储 可以按照以下步骤完成 创建临时表 cre
  • 如何在MySQL中选择字段具有最小值的数据?

    我想从 MySQL 中的表中选择特定字段具有最小值的数据 我尝试过 SELECT FROM pieces WHERE MIN price 请问有什么帮助吗 这将为您提供所有记录中价格最低的结果 SELECT FROM pieces WHER
  • Dapper MySQL 返回值

    我在 ASP net Identity 项目中使用 dapper 和 MySql 时遇到问题 我想将用户插入到表 users 中 并希望从这次插入中返回自动生成的 id 但我收到语法错误 我不知道为什么 这是我的方法插入代码 public
  • 从 MySql 返回最后插入的 id

    我在执行以下查询时遇到了一些问题 START TRANSACTION SET LASTID 0 INSERT INTO Accounts Col1 col2 col3 col4 VALUES param1 param2 param3 par
  • mysql:拒绝行更新

    我有一个包含 3 个字段的表 其中一个是 状态 status 是一个 ENUM 可能包含 a b 或 c 内容 我需要找到一种方法来拒绝对 status b 的所有行进行任何更新 甚至不允许根用户更新这些行 所以这就像让这一行成为 最终 如
  • 如何向表示多对多关系的 MySQL 闭包表添加排序顺序?

    这是我的问题的后续 如何在MySQL中实现多对多的层次结构 https stackoverflow com questions 9691366 how to implement a many to many hierarchical str
  • MySQL 中两个 Select 查询的结果相减

    我编写了两个 mysql 查询 一个获取一年中特定月份的总用户 注册 另一个获取一年中特定月份的活跃用户 我需要找到数量inactive当年的用户 为此 我正在考虑减去通过两个单独的查询获得的总用户数和活动用户列 以下是查询 1 Fetch
  • 使用 PHP 连接到 Amazon RDS

    我正在尝试将 RDS 实例与 PHP 连接文件连接 这是我的文件中的内容 define DB SERVER localhost define DB USERNAME User Name define DB PASSWORD Password
  • Django migrate:不创建表

    经过一些错误后 我删除了数据库 删除了所有迁移文件 我留下了init py 现在 当我跑步时 python migrate py makemigrations It creates migrations correctly python m
  • 将一段文本保存到mysql

    我正在使用 php 和 mysql 做一个项目 我对此很陌生 现在我必须将一段文本存储到我的数据库中 在表中 对于列 I tried varchar 5000 创建表时但它不允许我 所以请给我一个解决方案 你的 mysql 字段类型应该 T
  • Hibernate save() 和事务回滚

    在休眠状态下 当我save 事务中的一个对象 然后我回滚它 保存的对象仍然保留在数据库中 这很奇怪 因为这个问题不会发生在update or delete 方法 只需用save 这是我正在使用的代码 DbEntity dbEntity ge
  • 在 MySQL 中选择不同的对

    我想选择 A 列和 B 列中具有相同值的行 例如 如果我的表是 A B 1 2 3 4 1 2 4 5 输出应该是 A B 1 2 A SELECT DISTINCT A B FROM table 选择表中的所有值 B SELECT DIS
  • mysql_upgrade 失败 - innodb 表不存在?

    我正在将 mysql 5 5 docker 容器数据库升级到 mysql 5 6 docker 容器 我能够解决所有其他问题 最后我的服务器运行的是 5 6 但是当我运行 mysql upgrade 时出现以下错误 ERROR root 1

随机推荐