草庐IT

sql - MySQL 外键自动生成的名称是否具有确定性?

创建约束时,它们会被赋予类似于“FK5E6B788655A1514E”的名称。我想知道名称生成是确定性的还是随机的。我注意到我使用的两个不同的数据库,相同的模式,最终具有相同的FK名称。在编写从一个模式版本到另一个模式的升级脚本时使用这些约束名称是否有意义? 最佳答案 我想知道这个问题已经有一段时间了,在做了一些我自己的研究之后,今天偶然发现了你的帖子。希望我的发现对您有所帮助。来自http://dev.mysql.com/doc/refman/5.5/en/innodb-adaptive-hash.html:InnoDBhasam

mysql - 更改 mySQL 表以添加外键时出现错误 #1452

试图帮助一名实习生完成她的项目。她想将外键添加到现有表,但此查询:ALTERTABLE`document`ADDCONSTRAINT`document_ibfk_1`FOREIGNKEY(`cle_author`)REFERENCES`author`(`id_author`)ONDELETECASCADEONUPDATECASCADE;给出这个错误:ERROR1452(23000):Cannotaddorupdateachildrow:aforeignkeyconstraintfails(`wrc_mysql`.,CONSTRAINT`document_ibfk_1`FOREIGNKE

mysql - 由于外键约束,使用 phpMyAdmin 复制数据库失败

我正在使用phpMyAdmin,我正在尝试将数据库从一个数据库复制到另一个数据库(在我的开发机器上)。我收到以下错误:#1452-无法添加或更新子行:外键约束失败在幕后,PMA似乎正在执行一个INSERTINTO...SELECT查询。有没有办法让PMA正确复制这个数据库?或者,是否有更好的工具来处理我应该使用的MySQL(最好是基于GUI的)? 最佳答案 导出原始数据库,然后将其导入新数据库-在导出中创建的SQL将具有“禁用键”指令,这将使您跨过障碍。 关于mysql-由于外键约束,使

mysql - 有人可以帮助我理解外键 UPDATE 和 DELETE 与关系名称吗?

目前,我正在研究MySQLInnoDB中的用户数据库。因此,我将使用它来帮助演示。UsersRoles------------------------------userid(bigint)PK>roleid(tinyint)PKemail(varchar)rolename(varchar)username(varchar)password(char)>roleid(tinyint)FKcreated(timestamp)现在,我正在尝试基于roleid在Role和Users之间创建一对多关系。为此,我在考虑OnUPDATECASCADE和OnDELETERestrict。这就是我觉得

mysql - 一张表中两列之间的外键关系

我正在构建一个数据库表,表示一个“注释”,它在其中的两列中具有父子关系,如下所示:IDINT(10)PKNOTNULLUNSIGNEDZEROFILLAUTOINCREMENT--Primarykeyparent_IDINT(10)UNSIGNEDZEROFILL--ReferencesPrimarykeyusernameVARCHAR(30)NOTNULLinformationVARCHAR(256)NOTNULLcommentVARCHAR(256)NOTNULL其中username是user表的外键,是写笔记的人的用户名,information是信息注释和comment中包含的是

MySQL 外键约束 - 错误 1452 - 无法添加或更新子行

我已经使用了关于这个主题的其他帖子,但我没有运气。这是我执行的代码:UPDATEtblOrderItemsSET`ItemID`=0004WHERE`OrderNum`=203AND`OrderItemID`=26这是我的错误:ErrorCode:1452.Cannotaddorupdateachildrow:aforeignkeyconstraintfails(`cai0066`.`tblOrderItems`,CONSTRAINT`ItemID`FOREIGNKEY(`ItemID`)REFERENCES`tblCatalogItems`(`ItemID`))注意事项:当我INSE

mysql - 如何向现有表添加外键?

我正在尝试将Category_Name作为外键添加到ITEM表中。Category_Name存在于CATEGORY表中,这是我得到的:mysql>useacmeonline;Databasechangedmysql>showtables;+----------------------+|Tables_in_acmeonline|+----------------------+|category||item|+----------------------+2rowsinset(0.00sec)mysql>describeitem;+-------------+--------------

mysql - MySQL 中的外键 : ERROR 1005

我对在MySQL中添加外键有点困惑我想做的是引用Students主键:CREATETABLEEnrolled(sidCHAR(20),cidCHAR(20),gradeCHAR(2),PRIMARYKEY(sid,cid),FOREIGNKEY(sid)REFERENCESStudents);然而,我得到的是ERROR1005(HY000):Can'tcreatetable'test_db.Enrolled'(errno:150)我四处寻找,找到了MySQL"ERROR1005(HY000):Can'tcreatetable'foo.#sql-12c_4'(errno:150)"但是,

mysql - 无法将外键添加到表

我在向现有表添加外键时遇到问题,我总是出错ERROR1005(HY000):Can'tcreatetable'#sql-a1f-b84'(errno:150)我试过ALTERTABLEalliancesADDCONSTRAINTfk_alliance_idFOREIGNKEY(alliance_id)referencesalliances(id);当我执行DESCRIBEalliances;时FieldTypeNullKeyDefaultExtraidint(11)NOPRINULLauto_incrementnamebigint(2)YESNULL当我执行DESCRIBEallian

mysql - 3个表相互依赖时外键的工作方式

我有tableitemsproductsbrands它们的内容:products:-samsunggalaxys2-iphone5brands-samsung-appleitem和product的区别如下:产品可以说是iPhone。item是特定用户的特定iPhone,具有自己的属性,例如颜色和购买价格。产品iPhone具有Apple的品牌/制造商。当插入一个新商品时,我希望数据库从该商品所属的产品中获取品牌,所以我的外键是这样设置的:'db_name`.'products'.`productBrand`我有两个品牌的ATM-三星和苹果。当我尝试通过phpMyAdmin的界面插入一个新