问题标签 [foreign-keys]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2005 - 如何查询与其约束不匹配的外键?
SQL 服务器 2005。
我正在将外键约束添加到据称不需要它们的应用程序的数据库中。自然地,数据变得不可靠,并且外键字段中存在孤立条目。
设置:
两个表,TableUser 和 TableOrder。TableUser 具有主键“UserID”,TableOrder 具有外键“UserID”。
如何找到 TableOrder.UserID 在 TableUser.UserID 中没有匹配条目的行?
例如,TableOrder.UserID 的值为 250,但没有与 250 匹配的 TableUser.UserID 键。
mysql - 如何在 MySQL 中创建关系
在课堂上,我们都在“学习”数据库,每个人都在使用 Access。对此感到厌烦,我正在尝试做其他班级正在做的事情,但使用 MySQL 的原始 SQL 命令而不是使用 Access。
我已经设法创建了数据库和表,但是现在我如何在两个表之间建立关系?
如果我有两个这样的表:
和
如何在两个表之间创建“关系”?我希望为每个帐户“分配”一个 customer_id(以指示谁拥有它)。
sql-server - 围绕缺乏跨数据库外键引用的 SQL 设计
无论好坏,我们都有一个依赖于多个数据库的解决方案,这些数据库都引用了一个通用的管理数据库。数据库作为模块的一部分提供,并非所有模块都需要安装(这可能是我们首先拥有多个数据库的原因)。需要管理数据库,但是......所以它会一直存在。
我想为混乱带来一些参照完整性和秩序,但由于 SQL Server 无法执行跨数据库外键而受到阻碍。数据库中没有很多流失,但信息将由(咳咳)非技术用户插入/更新。
我看到的选择是:
a)使用触发器强加伪外键(好的,但有点工作)
b)使用触发器从管理员复制到其他数据库(灾难的明确秘诀)
c) 在代码/DAL 中强加伪外键(与 ORM 不兼容)
d) 不要在 DB 级别担心它,使用良好的 UI 设计来确保没有人做任何愚蠢的事情并限制直接 SQL 访问的访问/屏住呼吸。
坦率地说,我倾向于选择“D”,但我认为我会比我更聪明地寻求意见......
sql-server - 外键引用复合表
我有一个表结构,我不确定如何创建最好的方法。
基本上我有两个表,tblSystemItems 和 tblClientItems。我有第三个表,其中有一列引用“项目”。问题是,此列需要引用系统项或客户端项——哪个都没有关系。系统项目的键在 1..2^31 范围内,而客户端项目的键在 -1..-2^31 范围内,因此永远不会有任何冲突。
每当我查询这些项目时,我都是通过在两个表的内容之间执行 UNION ALL 的视图来完成的。
因此,最佳情况下,我希望将外键引用作为视图的结果,因为视图将始终是两个表的联合 - 同时仍保持 ID 唯一。但我不能这样做,因为我无法引用视图。
现在,我可以删除外键,一切都很好。但是,我真的很想有一些参考检查和级联删除/设置 null 功能。除了触发器,还有什么方法可以做到这一点?
sql - MySQL:如何以编程方式确定外键关系?
类似于这个问题,但对于 MySQL....
如何以编程方式确定 MySQL 中的外键引用(假设 InnoDB)?我几乎可以得到它们:
...但是,唉,似乎包含其中一些信息的评论栏被截断了,所以我不能依赖它。一定有别的办法...
我会对 C API 调用、SQL 语句以及任何东西感到满意——我只需要能够始终如一地工作的东西。
注意:我也考虑过解析“SHOW CREATE TABLE MyTableName”语句的结果,但我真的希望有更简单的东西。
sql-server - 外键是否在 SQL Server 中自动建立索引?
下面的 SQL 语句会自动在 Table1.Table1Column 上创建一个索引,还是必须显式创建一个?
数据库引擎是 SQL Server 2000
sql - SQL:一个外键引用几个表之一中的主键
我正在开发一个将用作其他应用程序的可扩展框架的应用程序。
基本类之一称为节点,节点具有内容。SQL 表如下所示:
表节点(NodeId int,....等)
表 NodeContentRelationship(NodeId int、ContentType 字符串、ContentId int)
这将取决于扩展应用程序以创建自己的内容类型的开发人员。
显然,从关系数据库的角度来看,这是不好的,因为无法将外键关系添加到 NodeContentRelationship.ContentId,即使它是外键列。
但是,该解决方案非常简单且功能强大,因此我不愿意更改它。
你怎么看 - 我会在赛道上陷入痛苦的世界吗?
mysql - 在 phpMyAdmin 中消失的外键
我正在 mysql 中创建一个新表,并尝试向其中一个字段添加外键约束。
但是,在它创建之后,我进入 phpMyAdmin 并导出表。似乎外键约束已经消失了。
phpMyAdmin 是否摆脱了外键或者我在这里做错了什么?
linq-to-sql - LINQ to SQL - ForeignKey 中的可空 INT =“无法创建关联......”
我有一个主键是 INT 的表...我有另一个表,它与第一个表有外键关系,但它是一个 NULLABLE INT。
这完全没问题,并且 100% 可以被 SQL 接受……但是 LINQ to SQL 抱怨类型不匹配(“int to Nullable[int]”)。
错误消息:无法创建关联“Store_People”。属性没有匹配的类型:“PersonID”、“ID”。
我该如何解决这个问题,以便设计师停止对 100% 正确使用 SQL 大喊大叫?
mysql - MySQL术语“约束”与“外键”的区别?
我在这里查看 MySQL 文档并试图理清 FOREIGN KEYs 和 CONSTRAINTs 之间的区别。我认为 FK是一种约束,但文档似乎在谈论它们,就像它们是独立的东西一样。
创建 FK 的语法是(部分)...
所以“CONSTRAINT”子句是可选的。为什么要包含它或不包含它?如果你忽略它,MySQL会创建一个外键而不是一个约束吗?或者它更像是“CONSTRAINT”只不过是你的 FK 的名称,所以如果你不指定它,你会得到一个匿名的 FK?
任何澄清将不胜感激。
谢谢,
伊森