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

当行包含某些特定值时,如何使INSERT在具有指向另一个表的外键的表上失败?

曹高阳
2023-03-14

如果标题让人困惑,我很抱歉(很可能是这样)。 让我给你举一个与我的案例类似的例子。

例如,我有一个带有字段iduser_typenameusers表。

另一个表是video,其字段idtitleuser_id引用users.id。 例如,当videos.user_id引用users行,user_type的值为“a”时,我希望insert/code>tovideo失败。


共有1个答案

龙隐水
2023-03-14

MySQL对数据库约束的支持不够有表现力,无法允许将这种约束规则内置到您的数据定义中。

您可以考虑使用BEFORE INSERT触发器,或者考虑在应用程序中构建这种规则。

 类似资料:
  • 问题内容: 在MySQL中: 如果我们有两个表: 和: 我想从意见表中具有相应的具有特定表(该列表)。 例如,我想选择所有从该行有一个表中的表: 我希望这些结果: 而如果我选择所有从该行表中有一个的在表: 我希望得到这样的结果: 我真的希望有人能提供帮助,谢谢大家! 我想我需要参加吗?任何指针都将是很好的,并且如果可能的话,可以做一个简短的解释,以便我可以找出我要去的地方->这样我下次就知道了!

  • 我试图解析出这个有超过8000行硬编码数据验证的方法。其中大部分是数据源中不同字段的相同的、重复的逻辑。 很多看起来像这样(C): 所以基本上,我只需要解析出每对然后得到每个唯一的验证“块”。 我目前面临的问题是确定每个“块”的开始和结束位置。 这是我的代码: 我的语句永远不会被点击,它只会立即跳转到creation,它会创建一个空文本文件,因为 转换成< code>bool?

  • 问题内容: 我有本身具有外键的表。列 parentid 是外键, 不能 为NULL。 如果我这样做,那么它说不能将NULL插入 父母的父母 。但是,如果还没有插入行,我可以为它设置什么值呢? 我如何编写将向该表添加行的脚本? 谢谢 问题答案: 技巧:拥有一个带有虚拟密钥的虚拟行,例如99999。将其插入为FK,然后将FK更改为其实际值。并在交易中完成。

  • 我成功创建了一个包含1个键和2个值的查找表: 但当我试图将其扩展到4个值时,我发现了一系列错误,我发现条目仅限于2个值! 那么,请,如何对1个键和4个值做类似的事情?我不能通过为第一个映射的第二个参数声明内部map.entry来扩展它。条目,因为在这一点上,第一个字符串不再是唯一的,我是说,映射的所有参数。条目 你们不需要走我走的路。你们可以自由地提供任何解决方案/数据结构,允许我存储和检索3个字

  • 问题内容: 为简化起见,我有两个使用外键一对一关联的表,例如: 一个用户可能有很多动作,也可能没有。我需要一个sql select来返回在actions表中没有user_id值的用户id。 所以我需要一个返回用户ID 2(Smith)的SQL查询,因为外键值不包含ID 2 我尝试了以下SQL,但它返回了所有用户ID: 问题答案:

  • 我有以下数据集: 我有以下带有ids的数组: 我想选择 id 属于 id 数组的数据帧 (df) 的列(array_id)。我希望输出是: 我设法实现了执行此操作的代码,但我需要使用两个for(): 输出为: 我想学习一种不需要使用两个for()的方法,并且(df_select)的输出不会与NaN一起出现。有没有办法解决这个问题?

  • 我有两个表两个表名

  • 表1有col1、col2、col3、col4、col5列 表2有col1、col3、col5列 我想将表2中的行插入表1 但是col2,col4在插入表2后应该是NULL数据类型 我怎么能在蜂巢,目前我正在使用Hortonworks 3.1版本