MySQL外键允许NULL吗?

2024-04-03

我正在拼凑一个图像网站。基本模式非常简单 MySQL,但我在尝试表示与图像关联的可能的管理标志(“不适当”、“受版权保护”等)时遇到了一些麻烦。我目前的想法如下:

tblImages (
    imageID INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ...
);

tblImageFlags (
    imageFlagID INT UNSIGNED NOT NULL AUTO_INCREMENT,
    imageID INT UNSIGNED NOT NULL,
    flagTypeID INT UNSIGNED NOT NULL,
    resolutionTypeID INT UNSIGNED NOT NULL,
    ...
);

luResolutionTypes (
    resolutionTypeID INT UNSIGNED NOT NULL AUTO_INCREMENT,
    resolutionType VARCHAR(63) NOT NULL,
    ...
);

(为了便于阅读而被截断;各种外键和索引都是有序的,我发誓)

tblImageFlags.flagTypeID在标志类型的查找表上是外键的,正如你可以想象的tblImageFlags.resolutionTypeID should外键luResolutionTypes.resolutionTypeID。当前的问题是,当第一次发出标志时,没有逻辑解析类型(我会声明这是一个很好的用途)NULL);然而,如果设置了一个值,它应该是查找表的外键。

我找不到针对这种情况的 MySQL 语法解决方法。它存在吗?最佳亚军是:

  • 添加“无审核”解决方案类型
  • Add a NULL进入luResolutionTypes.resolutionTypeID(这甚至可以在AUTO_INCREMENT柱子?)

感谢您的见解!

PS Bonus 指向任何告诉我在数据库中是“索引”还是“索引”的人。


跟进:感谢 Bill Karwin 指出表结构中的语法错误(不要将列设置为NOT NULL如果你想让它允许NULL!)。一旦我有足够的业力给你这些奖励积分,我就会:)


您可以通过允许来解决这个问题NULL在外键列中tblImageFlags.resolutionTypeID.


PS Bonus 指向任何告诉我在数据库中是“索引”还是“索引”的人。

的复数形式index应该indexes.

根据 ”现代美国用法 https://rads.stackoverflow.com/amzn/click/com/0195161912” 作者:布莱恩·A·加纳 (Bryan A. Garner):

对于普通目的,indexes是 最好的复数,不是indices。 ...Indices,虽然不那么自命不凡fora or dogmata, 尽管如此,还是很自命不凡。 有些作家更喜欢indices在 技术背景,如数学 和科学。虽然不是最好的 复数为index, indices是 在“指标”的意义上是允许的。 ... 避免单数indice,复数的反向构成indices.

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

MySQL外键允许NULL吗? 的相关文章

  • MySQL 8 用逗号分割字符串并将其转换为JSON ARRAY

    我有以下字符串 a b c d 我想将它转换成一个 json 数组 像这样 a b c d MySQL 8 有什么函数可以实现这个功能吗 Try SELECT CAST CONCAT REPLACE a b c d AS JSON See
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • 每月获取记录,但如果该月没有记录,则为零

    如果我有以下 SQL 表 Tests id type receiveDate 1 Blood 2012 01 18 2 Blood 2012 01 20 3 Blood 2012 01 18 4 Blood 2012 03 01 5 Blo
  • 使用Perl/DBI/MySQL/InnoDB查找外键信息

    我想以编程方式查找 MySQL 数据库中特定 InnoDB 表的外键 我正在使用 Perl 我偶然发现 dbh gt foreign key info 我刚刚尝试使用它 但似乎有点错误 它不会返回 ON DELETE 和 ON UPDATE
  • 在 Hibernate 中创建 UPDATE RETURNING 查询

    在 Oracle 中 我们可以创建一个更新查询 该查询将使用 RETURNING 子句返回更新的记录 Hibernate中有类似的功能吗 除了数据库生成的值之外 Hibernate 显然不需要返回更新的实例 因为对象传递给Session s
  • 如何在 MySQL 中测试 Select for Update

    我正在表演SELECT FOR UPDATE或 InnoDB 表的行级锁定 我的目的是只有一个请求可以读取同一行 因此 如果两个用户同时请求相同的数据 其中只有一个人获取数据 即第一个触发查询的人 但是我如何测试锁定是否已放置 因为我正在通
  • 慢速自动增量重置

    我有很多表 由于某些原因 我需要在应用程序启动时调整这些表的自动增量值 我尝试这样做 mysql gt select max id from item max id 97972232 1 row in set 0 05 sec mysql
  • 我应该用不可变或可变的数据结构来表示数据库数据吗?

    我目前正在使用 Scala 进行编程 但我想这适用于任何函数式编程语言 或者更确切地说 任何建议不变性并可以与数据库交互的编程语言 当我从数据库中获取数据时 我将其映射到模型数据结构 在函数式编程中 数据结构往往是不可变的 但是数据库中的数
  • mysql 中的二进制、十六进制和八进制值

    我对在 mysql 数据库中使用二进制 十六进制和八进制系统非常感兴趣 首先 请给我一个建议 为什么我们在存储信息时需要它们 因为信息太多 或者为什么 另外 哪种类型的值必须存储在标记系统中 另外这里还有像 这是例子 gt SELECT 5
  • 如何从批量数据中的mysql列中删除所有非数字字符

    我想从列中删除所有非数字字符 我的数据库中有大量数据 目前我正在使用以下链接中描述的方法 http venerableagents wordpress com 2011 01 29 mysql numeric functions http
  • 删除行导致锁超时

    当我尝试从表中删除行时 我不断收到这些错误 这里的特殊情况是我可能同时运行5个进程 该表本身是一个 Innodb 表 约有 450 万行 我的 WHERE 子句中使用的列没有索引 其他指数按预期运行 这是在事务中完成的 首先删除记录 然后插
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • Mysql插入表后不显示右单引号(’)

    我有一个名为 测试 的表 我插入了一行 其中包含unicode字符右单引号 0x2019在名称字段中 SQL insert into Testing values Sno Name Address insert into Testing v
  • 通过触发器应用表的列权限

    现在 我有一个名为 Members 的表 其中包含内容 分为联系人数据 银行数据 现在 管理员应该能够创建 更新 删除用户 这些用户保存在另一个表中 该表只能访问管理员 用户应该获得自己的 mysql 用户帐户 管理员还应该能够设置权限 例
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val

随机推荐

  • Jekyll 服务不起作用:看起来您没有安装 pygments 或其依赖项之一

    Configuration file Users andrechristoga Documents type theme config yml Deprecation You appear to have pagination turned
  • 为什么路由防护 canLoad 不触发,但 canActivate 却触发

    我有一个 Angular 2 0 1 最终版 应用程序 它使用哈希位置策略为路线导航策略 我将其中一条路线定义如下 path shiftmanage component ShiftManageComponent canLoad AuthGu
  • 如何使用 ActivePerl 运行 Perl 脚本?

    我最近刚刚在我的 Windows XP 上安装了 ActivePerl 5 12 2 1202C Perl 我是 Perl 脚本新手 我只想运行一个 Perl 程序 其中包含一个print语句 我将其保存在记事本中 名称为ex pl 我怎样
  • 使用 xarray 插值周期边界

    我想插入很多xarray数据集包含一个公共网格的全球气候数据 xarray实际上有一个interp http xarray pydata org en stable interpolation html 工作正常的方法 但据我所知 没有考虑
  • Spring Boot 是否自动解析 javax 和 hibernate 验证注解中的消息键

    我正在编写一个 Spring Boot 应用程序 我想知道 Spring Boot 是否自动解析 javax 和 hibernate 验证注释中的消息键 例如 NotEmpty message message key String name
  • 刷新页面删除引导选择样式

    我正在使用 bootstrap select 并且我是前端新手 我正在尝试在我的页面中实现 bootstrap 的多选组件 但是问题 我面临的是 当我将页面提交到服务器时 如果发生错误 它会从选择框中删除所有 css 类 并仅显示多选列表而
  • 在 django.core.urlresolvers reverse() 调用中包含查询字符串

    我正在尝试反转命名 URL 并在其中包含查询字符串 基本上我修改了登录功能 我想发送 next in it 这就是我现在正在做的事情 reverse name next reverse redirect 这是我想做的 reverse nam
  • 如何解析节点名称中包含无效字符的 XML?

    所以我试图解析一些 XML 其创建不在我的控制之下 问题是 他们以某种方式得到了如下所示的节点
  • 尝试通过 HTTPS 传递 swagger.json 时出现“未提供规范”错误

    如果我尝试使用 Flask RestPlus 通过 HTTPS 交付 Swagger UI 我只会在根 URL 处看到 未提供规范 错误消息 并且完整的 Swagger UI 永远不会加载 但是 如果我访问 API 端点 它们会按预期返回响
  • 无法安装 .NET Standard 2.0

    我正在尝试创建一个 NET Standard 2 0 项目 但是在项目属性页面上它仅具有最高 NET Standard 1 6 的选项 我转到 Visual Studio gt 工具 gt 扩展和更新 gt 更新 gt 产品更新 并将 Vi
  • 删除对象的私有属性

    尝试并搜索了这个 但似乎从未在 SO 中找到它 尝试使用unset this gt property name 但当我使用时它仍然出现print r object name 是否不可能删除对象的私有属性 这是一个示例代码 class my
  • ASP.NET 5 中的 URL 重写

    我使用的是 ASP NET 5 其中整个文件夹结构已更改 并且 web config 已替换 与以前的 ASP NET 版本相比 我正在使用 angularJS 进行客户端路由 并且我有以下路线 when movies add templa
  • 如何使 CPAN::Meta::Spec 的“先决条件”需要发行版而不是软件包?

    我正在研究如何打包我的一些 Perl 应用程序并更好地管理它们的依赖项 以使我和我的客户更容易分发 这很可能根本不包括上传到 CPAN 相反 如果有必要 我会提供自定义存储库 或者更可能的是 访问 Subversion 等 SCM CPAN
  • 你能以编程方式获取 Firefox 附加组件列表吗

    在查看了缓存等之后 我花了相当多的时间试图确定为什么我的网站视图与客户端不匹配 我们确定问题出在其中一个附加组件上 在这种特殊情况下为 Adblock Plus 如果我们能够有一种简单的方法来查询安装了哪些附加组件 并且最好是处于活动状态
  • Spark作业是什么?

    我已经完成了 Spark 安装并执行了一些设置主节点和工作节点的测试用例 也就是说 我对 Spark 上下文 而不是 SparkContext 中的作业到底意味着什么感到非常困惑 我有以下问题 工作与驱动程序有多么不同 应用程序本身是驱动程
  • 如何在多行字符中只显示一个标签?

    我使用 Chart js 创建一个图表 该图有两条线 因此它默认也显示两个标签 但我需要一种配置 其中应该显示红色标签 而应该隐藏蓝色标签 标签not线 感谢您的帮助 var config type line data labels 16
  • 创建自动调整大小的打印输出

    我的应用程序需要打印一些东西 布局应该有点动态 有时特定字段可能包含更多数据 这可能需要它们自动换行或类似的 但打印输出不应超过一页 如果数据太多 我想稍微减小字体大小 然后重试 然后重复 直到所有内容都适合一个页面 永远不会so许多数据的
  • CR 与 LF perl 解析

    我有一个 perl 脚本 它解析一个文本文件并将其每行分解为一个数组 当每行以 LF 终止时它工作正常 但当它们以 CR 终止时我的脚本无法正确处理 我该如何修改这一行来解决这个问题 my allLines split entireFile
  • 检查用户是否已连接 AppleWatch,而不提示手表

    我们正在使用谷歌分析 并想知道我们有多少用户拥有苹果手表 我在 Stack 中搜索了答案 反复出现的答案是使用这个 if WCSession isSupported check if the device support to handle
  • MySQL外键允许NULL吗?

    我正在拼凑一个图像网站 基本模式非常简单 MySQL 但我在尝试表示与图像关联的可能的管理标志 不适当 受版权保护 等 时遇到了一些麻烦 我目前的想法如下 tblImages imageID INT UNSIGNED NOT NULL AU