使用navicat for mysql 创建外键foreign keys时,总会自动创建索引indexs。如果删除这个索引就会提示错误error 1553:cann’t drop index…:needed in a foreign key constraint。请教各位,该如何解决呢,不想要indexs
这个好像必须要吧 主键默认就带索引 这个索引对外键表没什么影响 但是现在不想要这个索引,而且navicate for mysql自动生成的索引都是和外键字段相同 但是现在不想要这个索引,而且navicate for mysql自动生成的索引都是和外键字段相同[/quote] 你不想要的理由是? 你吃去肯德基买汉堡 一个汉堡18元 现在有18元的套餐 是汉堡+薯条+可乐 买汉堡不卖套餐的理由是? Navicate会自动创建默认的索引, 一般关联到主键上, 但索引是可以修改的; 跟外键是没有任何关系的 ! 如果不想要的话, 你可以手动写sql语句 挖个坟,我也遇到lz一样的问题,ls的比喻根本就不对,按你的比喻:“一个汉堡18元 现在有18元的套餐 是汉堡+薯条+可乐”,你这这里“薯条+可乐”比喻成索引,相当于白送的,这个当然好啦,可索引不是白送的啊,真像你说的那样索引白送的,有益无害,那所有的字段都弄索引好了。 都知道索引会增加物理存储空间,而且影响修改数据时的速度,有些外键其实也不用什么索引,真不懂为啥会自动生成 不对 只要是外键 就一定得有索引 因为你要用它关联 你应该站在数据库的角度来看问题 如果你开发一个数据库 对于有关联的表 存储方式肯定不能像单一表一样 key一定也要有一个BTree去存 这个树 就是索引
|