草庐IT

mysql 外键错误 #1452

ALTERTABLE`groups`ADDFOREIGNKEY(`company_id`)REFERENCES`summaries`.`companies`(`id`)ONDELETECASCADE;MySQLsaid:#1452-Cannotaddorupdateachildrow:aforeignkeyconstraintfails(`summaries/#sql-164a_33c`,CONSTRAINT`#sql-164a_33c_ibfk_1`FOREIGNKEY(`company_id`)REFERENCES`companies`(`id`)ONDELETECASCADE)c

mysql - 如何在 SQL Buddy 中使用外键?

我需要使用外键进行更新和级联等ALTERTABLEtopicsADDFOREIGNKEY(topic_by)REFERENCESusers(user_id)ONDELETERESTRICTONUPDATECASCADE;但我无法在SQLBuddy中创建外键。有什么办法吗? 最佳答案 你试过吗:ALTERTABLEtopicsADDCONSTRAINTtopic_byFOREIGNKEY(user)REFERENCESusers(user_id)ONDELETERESTRICTONUPDATECASCADE

mysql - 如何使用外键禁用 InnoDB 的 MySQL 注释?

一段时间以来,我注意到MySQL会将注释附加到定义了外键的InnoDB表中。它看起来像这样:InnoDBfree:0kB;(event_id)REFERevents(event_id)ONU...为了正确显示我的表描述,我必须解析字符串并用分号分隔它。一般情况下这没什么大不了的,但是在数据库GUI中一直看到此消息非常烦人。我通过stackoverflow找到了thisquestion这对我来说不是很方便,所以我在徘徊是否可以禁用此行为/错误?更新:托管提供商服务器上安装的MySQL版本为5.0.77 最佳答案 我在MySQL官方论坛

php - 在 PHP 中处理外键异常

在PHP中处理mysql数据库外键异常的最佳方法是什么?有没有可以用来简化任何代码的mysql类?理想情况下,我想要做的,例如,尝试删除一条记录,它是任意数量子表的外键父级。外键抛出异常,所以我希望能够查看每个外键表并对其进行测试,对导致异常的表和记录数提供有意义的反馈。这将作为错误返回,以便最终用户可以引用和删除违规记录。 最佳答案 我处理这个问题的方法是将我的数据库包装器类设置为在遇到数据库错误时始终抛出异常。因此,例如,我可能有一个名为MySQL的类,它具有以下功能:publicfunctionquery($query_str

MySQL:使用两个外键创建表失败并出现 "Duplicate key name"错误

在尝试创建新表时,MySQL给出了一个我无法解释的错误。CREATETABLEProducts(idINTNOTNULL,PRIMARYKEY(id));CREATETABLEWarehouseMovements(timeDATETIMENOTNULL,product1INTNOTNULL,product2INTNOTNULL,FOREIGNKEYWarehouseMovements(product1)REFERENCESProducts(id),FOREIGNKEYWarehouseMovements(product2)REFERENCESProducts(id));失败并显示ERR

mysql - 如何将自动递增的主键也用作外键?

这就是我想要做的:我有2个表...CREATETABLE`parent`(`id`int(11)NOTNULLAUTO_INCREMENT,`data`text,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=3DEFAULTCHARSET=utf8;CREATETABLE`child`(`parent_id`int(11)DEFAULTNULL,`related_ids`int(11)DEFAULTNULL,KEY`parent_id`(`parent_id`),KEY`related_ids`(`related_ids`))ENGINE=I

mysql - 1 :1 relation 中的双向外键约束

我正在使用MySQL数据库。在我的关系数据模型中,我有两个彼此1:1相关的实体。在我的架构中,通过将FK字段放在两个表之一中来建立1:1关系,该字段与另一个表的PK相关。两个表都有PK,它们都是自动递增的BIGINT。我想知道是否有可能对它们进行ONDELETECASCADE行为以双向工作。即A1:1B,即【删除A也删除B】以及【删除B也删除A】。我意识到,就正确的应用程序设计而言,这可能不是绝对必要的,但我只是想知道这是否真的可行。据我所知,您不能对PK施加FK约束。 最佳答案 如果强制执行双向关系,则不可能插入此类记录。鸡和蛋。

mysql - 添加外键约束时,哪个方向是最佳实践?

假设我有三个表,分别是profiles、profiles_skills和skills。这是一种HABTM关系,其中一个配置文件可以具有多个技能,并且一个技能可以属于多个配置文件。我需要在这些表之间设置一个外键约束。我的问题是,外键应该是什么方向?例如,我是否这样做:ALTERTABLEprofiles_skillsADDFOREIGNKEY(skill_id)REFERENCESskills(id);ALTERTABLEprofiles_skillsADDFOREIGNKEY(profile_id)REFERENCESprofiles(id);或者我应该这样做:ALTERTABLEpr

sql - 同一张表的两个外键。如何编写此 SELECT 语句?

用户表user_idusernamethumb_idfullimage_id1jprescott14152lpausch1819图片表image_idpath14jprescott/small.jpg15jprescott/big.jpg16msamuels/small.jpg17msamuels/big.jpg18lpausch/small.jpg19lpausch/big.jpg现在,我该如何编写SELECT语句来检索具有缩略图和全图路径的用户?问题在于同一张表有两个外键。 最佳答案 你做了两个连接:SELECTu.userna

MySQL 外键 - 如何跨表强制执行一对一?

如果我在MySQL中有一个表代表一个基类,我有一堆表代表派生类中的字段,每个表都使用外键引用回基表,有什么办法让MySQL在派生表和基表之间强制执行一对一关系,还是必须在代码中完成?以下面的quick'n'dirtyschema为例,有没有办法让MySQL确保product_cd和product_dvd中的行不能共享相同的product_id?是否有更好的方法来设计架构以允许数据库强制执行此关系,或者根本不可能?CREATETABLEIFNOTEXISTS`product`(`product_id`int(10)unsignedNOTNULLauto_increment,`produc