仓酷云

标题: 公布办理因为操纵不妥呈现的ERROR 1005毛病 [打印本页]

作者: 谁可相欹    时间: 2015-1-16 20:13
标题: 公布办理因为操纵不妥呈现的ERROR 1005毛病
这一切听起来不错,无疑DBaaS具有很多相对于RDBMS的优势。然而MySQL学习教程,DBaaS也有其局限性,云服务中固有的局限性就是之一。当客户开始将数据放入云端时,他们会遭遇到无法控制的网络性能问题。在利用MySQL的时分,在操纵不妥时,很简单呈现ERROR1005(HY000):Cantcreatetable这类毛病。良多站长伴侣大概必要排查好久才会找到成绩的缘故原由实在很复杂,但愿这篇文章能够对站长伴侣和Mysql初学者一点匡助。

MySQL官方供应的成绩缘故原由:

在信息中有一组【LATESTFOREIGNKEYERROR】会有比来毛病的具体形貌息争决举措。

Cannotfindanindexinthereferencedtablewherethereferencedcolumnsappearasthefirstcolumns,orcolumntypesinthetableandthereferencedtabledonotmatchforconstraint.
(译:不克不及在“被reference的表”里找到包括“被reference字段”的索引,大概是两个联系关系字段范例不婚配)

以下先容两个示例:

示例一:

程序代码

createtablebooktype
(
btidint(5)unsignedzerofillauto_incrementnotnullPRimarykey,
btnamevarchar(100)notnullunique,
btnotetext
);

createtablebooks
(
bidint(5)unsignedzerofillauto_incrementnotnullprimarykey,
bnamechar(30)notnull,
isbnchar(50)notnull,
authorchar(30)notnull,
presstext,
summarytext,
bcountintnotnulldefault0,
btidint,
foreignkey(btid)referencesbooktype(btid)
);

呈现的报错:

程序代码

ERROR1005(HY000):Cantcreatetable.ookdataooks.frm(errno:150)


次要成绩和办理举措是:

foreignkey(btid)referencesbooktype(btid)中books表的btid是int和booktype表中的btid设置的联系关系字段范例不婚配,books表中btid更正成:btidint(5)unsignedzerofill,就不会报错了,创立表和修正表地时分经常一步小小就健忘了这个.

示例二:

MySQL里创立外键时(Altertablexxxaddconstraintfk_xxxforeignkey),提醒毛病,但只提醒很复杂的信息:ERROR1005(HY000):Cantcreatetable.env_mon#sql-698_6.frm(errno:150)。基本起不到办理成绩的感化。

droptableifexistsproducts;
createtableproducts(
idintnotnullauto_increment,
titlevarchar(100)notnull,
descriptiontextnotnull,
image_urlvarchar(200)notnull,
pricedecimal(10,2)notnull,
date_availabledatetimenotnull,
primarykey(id)
)type=innodb;

droptableifexistsline_items;

createtableline_items(
idintnotnullauto_increment,
product_idintnotnull,
quantityintnotnulldefault0,
unit_pricedecimal(10,2)notnull,

constraintfk_items_productforeignkey(product_id)referencesproducets(id),

index(product_id)
primarykey(id)
)type=innodb;

呈现的报错:

ERROR1005:Cantcreatetable

次要成绩和办理举措是:

1,MySQL撑持外键束缚,并供应与别的DB不异的功效,但表范例必需为InnoDB
2、建外键的表的谁人列要加上index
DBaaS系统本身并不提供面对面访问或个人客户关系或持续不断的支持MySQL学习教程。这些就是需要解决方案提供商的原因。他们帮助客户选择正确的解决方案、规划集成和迁移战略,然后协助实施。
作者: 只想知道    时间: 2015-1-18 18:52
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
作者: 小女巫    时间: 2015-1-25 15:51
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
作者: 乐观    时间: 2015-2-3 06:06
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
作者: 若天明    时间: 2015-2-8 20:03
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
作者: 仓酷云    时间: 2015-2-26 03:09
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
作者: 莫相离    时间: 2015-3-8 11:34
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
作者: 谁可相欹    时间: 2015-3-15 22:27
连做梦都在想页面结构是怎么样的,绝非虚言
作者: 金色的骷髅    时间: 2015-3-22 17:10
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2