十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
外键要保证数据完整的,比如:
我们提供的服务有:成都网站制作、成都网站设计、微信公众号开发、网站优化、网站认证、沈阳ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的沈阳网站制作公司
表A的字段a是表B的主键b的外键。那么当表A中有数据的时候,并且表A中的数据中有一条的字段a的值是‘1’,但是表B中的所有记录的主键b中没有一个值是‘1’的。那么这这个时候你要给A.a加上关联B.b的外键就不可以了。
解决方法:
方法一:备份表A后清空数据-加外键-查看表A中备份数据,添加在表B中添加相应的主键
方法二:查看表A中所有的a字段的值在表B中不存在的列,要么在表A中删除这些多出来的记录,要么在表B中新增少的记录。然后再添加主键。
[b]# 这种是备份表数据到文件中,同时删除原表数据[/b]
mysqldump -u root -p12345 flow record log_$T.sql
# 但是这样是否中途有数据损失不好说
mysql -u root -p12345 -e "use flow;truncate table record;"
[b]# 这种是备份到辅助表中[/b]
mysql -u root -p12345 -e "use flow;create table record$T as select * from record
;truncate table record;"
[b]# 理论来说这种最好[/b]
mysql -u root -p12345 -e "use flow; create table log_temp like logs;
rename table logs to log_xxxx, log_temp to logs;"
# 然后再把数据导出来
------------------------------------------------------
1.lesson表: �0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2!--StartFragment --�0�2我现在想删除sid这个列的外键: 别的同学的机子都可以删除,但是我的机子就不行,我们的MySql是一个版本的,不知道是什么原因?谁帮我解答下?????问题补充:div class="quote_title"hanyuanbo 写道/divdiv class="quote_div"你的同学可以删除,而且版本也一样,可能是你们表的结构不同。你可以先将那个包含外键的那个表备份下,删除掉那个表格,这样就可以删除外键了。之后再把备份恢复下就好了。img src="/images/smiles/icon_smile.gif"/ /div /div class="quote_title"hanyuanbo 写道/divdiv class="quote_div"你的同学可以删除,而且版本也一样,可能是你们表的结构不同。你可以先将那个包含外键的那个表备份下,删除掉那个表格,这样就可以删除外键了。之后再把备份恢复下就好了。img src="/images/smiles/icon_smile.gif"/ /div /就是因为有外键,所以导致列和表都删除不了,除非把整个Database都删除,那样的话我做的整个database都没了,只要找到能删除外键的,就可以把这个列删除,也就照样可以把这个表删除!!!!郁闷啊就是不能删除哪个外键!!问题补充:div class="quote_title"hanyuanbo 写道/divdiv class="quote_div"在删除那个把该外键作为主键的表之前,你先把包含外键的那个表中的外键全部删掉,置为null,或者直接将那列删掉,这样就没有地方引用这些外键,你就可以将那个表删除掉了。希望可以帮忙。记得以前做过类似的东西,删除将外键作为主键的表之前,必须将引用到这个键的内容置空,即没有引用该键,这样便可以删除了。/div /alter table lesson drop index key; /nbsp; 可是这个语句删除不了外键啊,我也知道只要把外键删掉就可以删除表了,关键是我不知道怎么删外键了!!!!