草庐IT

MySQL - 唯一外键

我必须使其中一个外键唯一。问题是,我从phpMyAdmin收到以下消息:Thefollowingindexesappeartobeequalandoneofthemshouldberemoved:consignmentnumber_id_UNIQUE,fk_consignments_consignmentnumbers2所以我的问题是:我应该被打扰吗?没有这样的索引真的很重要吗? 最佳答案 具有键(主键、外键)的每一列都需要一个索引。与列的唯一性相同。您可能创建了两个索引(一个在创建FK时创建,一个在创建唯一约束时创建)。如果是这种

sql - 如何在 MySQL 表中使用外键和空间索引?

我们的项目在MySQL数据库的INNODB表中以树结构保存世界数据库。地球是根,然后是国家,然后是国家地区,地点是叶子。外键用于为child提供快速访问(例如某个地区的城市)。现在我们要在数据库中针对给定坐标实现快速地理搜索。一个明显的解决方案是使用SPATIALINDEX,这是MyISAM表的一个特性。但是MyISAM表不支持外键。并且INNODB表不支持SPATIALINDEX。所以如果我们使用MyISAM表,我们必须放弃外键,这会使child搜索的时间太长。我们如何结合树中的快速子搜索和表中的SPATIALINDEX? 最佳答案

Mysql跨库外键

我正在尝试创建一个跨数据库外键。当我在同一数据库上运行以下代码时CREATETABLE`t1`(`id`int(11)NOTNULLAUTO_INCREMENT,`int_id`varchar(128)COLLATEutf8_unicode_ciNOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`int_id`(`int_id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;CREATETABLE`t2`(`id`int(11)NOTNULLAUTO_INCREMENT,`ext_id`varchar

mysql - 有什么方法可以使用 mysqlimport 选项卡选项禁用外键检查?

我问了thisquestion之前,我只是回到这个问题。IhaveabackupscriptformyMySQLdatabase,usingmysqldumpwiththe--taboptionsoitproducesa.sqlfileforthestructureanda.txtfile(pipe-separated)forthecontent.链接问题的答案在导入SQL文件(表结构)时有效,但在导入某些表时我也遇到外键约束错误(因为表本身有外键)。两条命令是这样的:cat看起来这是requestedyearsagoontheirbugtracker但从未实现。有什么解决办法吗?请注

mysql - 从所有表中删除外键关系

我有一个包含多个表的数据库。许多表都有带外键约束的字段。我想截断表,然后用新数据重新填充它们,我还想去掉外键,因为一些关系已经改变。基本上,我想再次从头开始构建FK约束。如何从所有表中删除当前的FK约束? 最佳答案 您可以使用information_schema。看看这个页面http://dev.mysql.com/doc/refman/5.0/en/key-column-usage-table.htmlselectconcat('altertable',table_name,'dropforeignkey',constraint_

mysql - 相互依赖的外键

我正在尝试创建一个数据库,其中包含2个外键相互依赖的表。第一个表称为问题,它包含有关用户提出的问题的数据,并且还需要保存对问题的最佳答案的key。(这应该是我们名为Answer的第二个表的外键)第二个表叫做Answer,它保存了关于问题答案的信息,还需要保存一个question_id字段,这是这个答案回答的问题的关键。这也是第一个表的外键。当我尝试创建表时,它无法创建第一个表,因为它不知道第二个表(当我们尝试向尚不存在的第二个表声明外键时出错)这是我使用的代码:createtablequestion(q_idnumeric(10,0),best_a_idnumeric(10,0),pr

mysql - 如何使用 phpMyAdmin 添加指向同一个表的外键?

我有一个现有的InnoDB表,其中已经有指向不同表的外键。但是当我尝试创建指向主索引的外键时,出现错误(检查数据类型)。该表是User,以User_Id为主。我想要一个外键Manager_ID,它是User_Id的FK。两者都是INT长度均为10未签名...但我仍然收到数据检查错误......? 最佳答案 确保Manager_ID未设置为NOTNULL。您必须在该字段上允许空值,因为公司中最高层的人将没有经理。我找到了apost在可能有帮助的MySQL板上。 关于mysql-如何使用ph

mysql - MySQL 中的外键约束错误 1452 - Magento 导入

我正在尝试导入magento的sql转储以及一些产品数据,但我得到了这个外键约束错误:`ERROR1452(23000)atline231680:Cannotaddorupdateachildrow:aforeignkeyconstraintfails:`magento`.`#sql-b33_27`,CONSTRAINT`FK_CATALOG_COMPARE_ITEM_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID`FOREIGNKEY(`customer_id`)REFERENCES`customer_entity`(`entity_id`)ONDELET

mysql - 为什么我们需要使用外键?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:ShouldIuseforeignkeys?好的,假设我们有两个表,users和comments。在评论中,我们有一列comment_made_by_user_id,它表示哪个用户键入了该特定评论。为什么我们需要将其指定为外键?如果我们不这样做,它仍然会起作用。我们指定主键,因为据我所知它使查询更快(我们只需要搜索一行,而当我们没有主键/索引时,我们必须遍历所有行)。这只是一种良好的编码习惯吗?

mysql - 存在外键约束时更改 MySQL 主键

我有两个已经存在的表(部分)大致如下所示:CREATETABLEparent(old_pkCHAR(8)NOTNULLPRIMARYKEY)ENGINE=InnoDB;CREATETABLEchild(parent_keyCHAR(8),FOREIGNKEY(parent_key)REFERENCESparent(old_pk)ONUPDATECASCADEONDELETECASCADE)ENGINE=InnoDB;我想向parent添加一个新的自动递增整数id列并将其用作主键,同时仍保留old_pk作为唯一键并允许其他表(如child)在外键约束中引用它。不幸的是,简单地说ALTER