草庐IT

mysql - ADD FOREIGN KEY 和 ADD CONSTRAINT fk_foreign_key 的区别

这个问题在这里已经有了答案:Differencesbetween"foreignkey"and"constraintforeignkey"(3个答案)关闭8年前。在MySQL中执行以下操作:altertableTABLE_AADDCONSTRAINTfk_id(id)REFERENCESTABLE_B(id)ONDELETECASCADEONUPDATECASCADE;做同样的事情altertableTABLE_AADDFOREIGNKEY(id)REFERENCESTABLE_B(id);除了它还在关系上添加了BTREE索引?还是它们相互补充?

sql - SELECT * FROM 表,用他们的名字替换 FK

我有2个表,产品有一个主键和一个名称,价格有一个pk,一个fk(pkofproduct)和价格。现在我必须select*fromprice,但需要显示产品名称而不是fk。我该怎么做? 最佳答案 SELECTpd.name,pc.priceFROMproductASpdINNERJOINpriceASpcONpd.id=pc.productid 关于sql-SELECT*FROM表,用他们的名字替换FK,我们在StackOverflow上找到一个类似的问题: h

sql - MySQL - FK 在 Web 应用程序中有用/可行吗?

我遇到过与FK和Web应用程序相关的讨论。基本上有人说Web应用程序中的FK并不代表真正的改进,在某些情况下甚至会使应用程序变慢。你们怎么看,你们的经验是什么?编辑:请注意,我知道FK的工作和目标,我只是不确定它们是否会对web应用程序(如youtube或类似的东西)的性能产生重大负面影响.--InnoDB引擎的创造者、Innobase的创始人兼首席执行官HeikkiTuuri的话:InnoDBchecksforeignkeysassoonasarowisupdated,nobatchingisperformedorchecksdelayedtilltransactioncommitF

c# - 在多对多关系中定义 FK 名称

我在两个实体之间有多对多关系。一切正常。有没有办法在中间表(StoresPushNotifications)中定义FK的名称?问的原因是mysql不允许定义长约束名。它会生成随机FK以防万一。当我尝试将迁移设置为较早的步骤时,它会中断迁移。[Table("Stores")]publicclassStoreEntity{[Key]publicintId{get;set;}publicvirtualICollectionPushNotifications{get;set;}}[Table("PushNotifications")]publicclassPushNotificationEnt

mysql - 允许/要求只有一个具有共同 FK 的记录具有 "primary"标志

首先,如果这是一个骗局,我深表歉意-我怀疑它可能是,但我找不到它。假设我有一张公司表:id|company_name----+--------------1|Someone2|Someoneelse...和联系人表:id|company_id|contact_name|is_primary----+------------+--------------+------------1|1|Tom|12|2|Dick|13|1|Harry|04|1|Bob|0是否可以设置contacts表,使其要求只有一条记录具有is_primary标志为每个常见的company_id设置?所以如果我尝试这

mysql - CakePHP 是在代码级别处理 FK,还是我也应该将 FK 添加到我的数据库中?

如果我添加带有ONDELETECASCADE之类的FK,我以后会遭受后果吗?如果不是,我应该为CakePHP的MySQL中的FK使用什么命名约定? 最佳答案 您可以看到布局的命名约定here.Cake根据您的modelassociations在代码中处理FK/关系以及通过命名约定隐含的关联。您可以通过在数据库级别定义FK关系来添加额外的“执行”层。如果您的数据库尊重这些,搬起石头砸自己的脚就更难了,但没有必要。它增加了在Cake的模型和数据库中保持关系同步的额外开销。 关于mysql-C

mysql - 在 A 中查找在 B 中没有关联行的行,FK 在 B 上?

我一直在做的是SELECT*FROMaLEFTJOINbONb.a_id=a.idWHEREb.idISNULL基本上,我试图找到a中没有关联的b的行,其中外键存储在b。这是执行此操作的正确方法,还是有不同类型的连接来执行此操作? 最佳答案 您正在寻找NOTEXISTS:SELECT*FROMaWHERENOTEXISTS(SELECT1FROMbWHEREa_id=a.id)在b.a_id上建立索引有助于提高此查询的性能。 关于mysql-在A中查找在B中没有关联行的行,FK在B上?,

mysql - 在 MySQL 中,FK 是 "CONSTRAINT"做什么?

我查看了MySQL5.1文档,但仍然无法弄清楚这一点——我注意到我输入到MySQL的代码与系统输出的代码之间存在差异。代码示例01和02之间有什么区别,这意味着02在FOREIGNKEY之前添加了CONSTRAINT--为什么,它有什么作用?CODE_SAMPLE_01:FOREIGNKEY(TABLE_02_nID_FK__TABLE_01_sID_PK)REFERENCESTABLE_01(TABLE_01_sID_PK),上下文:CREATETABLE`TABLE_02`(`TABLE_02_sID_PK`int(8)NOTNULL,`TABLE_02_nID_FK__TABLE

FK为null时如何显示空值

我有一个MySQL表,有两个FK引用另一个表格Type1不能为null,但是Type2可以。两者都是FKm_type桌子Katachi*Idintnamevarchar(40)-type1int-type2intM_TYPE*Idinttype_namevarchar(40)我进行了查询以显示卡塔奇表格,但我希望它显示为type_nameselectk.name,t1.type_nameastype1,t2.type_nameastype2fromkatachik,m_typet1,m_typet2wherek.type1=t1.idandk.type2=t2.id;它以两种类型的形式显示了卡

MySQL:创建表时出现 FK 错误 (errno 150)

我用MySQLWorkbench创建了一个模型现在正尝试将它安装到mysql服务器。使用File>Export>ForwardEngineerSQLCREATEScript...它为我输出了一个不错的大文件,其中包含我要求的所有设置。我切换到MySQLGUITools(特别是查询浏览器)并加载此脚本(请注意,我将从一个官方MySQL工具转换为另一个)。然而,当我尝试实际执行这个文件时,我一遍又一遍地得到同样的错误SQLSTATE[HY000]:Generalerror:1005Can'tcreatetable'./srs_dev/location.frm'(errno:150)“好吧”