热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQLERROR1005(HY000):Can'tcreatetable'schema_name.table_name'(errno:150)

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd
在按照书上的例子学习Yii的时候发现在创建一个有外键的MySQL表的时候总是报以下错误
  1. ERROR 1005 (HY000): Can't create table '.' (errno: 150)  

    但是仅仅从这个错误消息根本得不到任何对排查错误有意义的信息,找了一些文章大多数是说外键表和原表里声明的字段类型不一致,但是都没有给出怎么查出是这个错误的,后来发现原来可以通过运行"SHOW ENGINE INNODB STATUS;"命令,然后在命令结果中的“LATEST FOREIGN KEY ERROR”部分得到具体的错误消息。如下:

    1. ...  
    2. mysql> SHOW ENGINE INNODB STATUS\G  
    3. *************************** 1. row ***************************  
    4.   Type: InnoDB  
    5.   Name:   
    6. Status:   
    7. =====================================  
    8. 110920 23:26:39 INNODB MONITOR OUTPUT  
    9. =====================================  
    10. Per second averages calculated from the last 19 seconds  
    11. ----------  
    12. SEMAPHORES  
    13. ----------  
    14. OS WAIT ARRAY INFO: reservation count 46, signal count 46  
    15. Mutex spin waits 0, rounds 260, OS waits 13  
    16. RW-shared spins 58, OS waits 29; RW-excl spins 5, OS waits 4  
    17. ------------------------  
    18. LATEST FOREIGN KEY ERROR  
    19. ------------------------  
    20. 110920 23:26:33 Error in foreign key constraint of table trackstar_test/tbl_project_user_role:  
    21. foreign key (`project_id`) references `tbl_project` (`id`) on delete cascade on update cascade  
    22. ) engine InnoDB:  
    23. Cannot resolve table name close to:  
    24.  (`id`) on delete cascade on update cascade  
    25. ) engine InnoDB  
    26. ------------  
    27. TRANSACTIONS  
    28. ------------  
    29. Trx id counter 0 6375  
    30. Purge done for trx's n:o < 0 6353 undo n:o < 0 0  
    31. History list length 13  
    32. LIST OF TRANSACTIONS FOR EACH SESSION:  
    33. ---TRANSACTION 0 0, not started, process no 755, OS thread id 2991618928  
    34. MySQL thread id 42, query id 383 localhost root  
    35. SHOW ENGINE INNODB STATUS  
    36. --------  
    37. FILE I/O  
    38. --------  
    39. I/O thread 0 state: waiting for i/o request (insert buffer thread)  
    40. I/O thread 1 state: waiting for i/o request (log thread)  
    41. I/O thread 2 state: waiting for i/o request (read thread)  
    42. I/O thread 3 state: waiting for i/o request (write thread)  
    43. Pending normal aio reads: 0, aio writes: 0,  
    44.  ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0  
    45. Pending flushes (fsync) log: 0; buffer pool: 0  
    46. 36 OS file reads, 281 OS file writes, 177 OS fsyncs  
    47. 0.00 reads/s, 0 avg bytes/read, 0.05 writes/s, 0.05 fsyncs/s  
    48. -------------------------------------  
    49. INSERT BUFFER AND ADAPTIVE HASH INDEX  
    50. -------------------------------------  
    51. Ibuf: size 1, free list len 0, seg size 2,  
    52. 0 inserts, 0 merged recs, 0 merges  
    53. Hash table size 34679, node heap has 1 buffer(s)  
    54. 0.00 hash searches/s, 1.16 non-hash searches/s  
    55. ---  
    56. LOG  
    57. ---  
    58. Log sequence number 0 1774918  
    59. Log flushed up to   0 1774918  
    60. Last checkpoint at  0 1772796  
    61. 0 pending log writes, 0 pending chkp writes  
    62. 128 log i/o's done, 0.05 log i/o's/second  
    63. ----------------------  
    64. BUFFER POOL AND MEMORY  
    65. ----------------------  
    66. Total memory allocated 17596386; in additional pool allocated 960512  
    67. Dictionary memory allocated 58096  
    68. Buffer pool size   512  
    69. Free buffers       468  
    70. Database pages     43  
    71. Modified db pages  10  
    72. Pending reads 0  
    73. Pending writes: LRU 0, flush list 0, single page 0  
    74. Pages read 35, created 8, written 296  
    75. 0.00 reads/s, 0.00 creates/s, 0.00 writes/s  
    76. Buffer pool hit rate 1000 / 1000  
    77. --------------  
    78. ROW OPERATIONS  
    79. --------------  
    80. 0 queries inside InnoDB, 0 queries in queue  
    81. 1 read views open inside InnoDB  
    82. Main thread process no. 755, id 2955570032, state: sleeping  
    83. Number of rows inserted 60, updated 0, deleted 0, read 159  
    84. 0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s  
    85. ----------------------------  
    86. END OF INNODB MONITOR OUTPUT  
    87. ============================  

    推荐阅读
    • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
    • Oracle10g备份导入的方法及注意事项
      本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
    • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
    • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
      本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
    • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
    • 延迟注入工具(python)的SQL脚本
      本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
    • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
    • NotSupportedException无法将类型“System.DateTime”强制转换为类型“System.Object”
      本文介绍了在使用LINQ to Entities时出现的NotSupportedException异常,该异常是由于无法将类型“System.DateTime”强制转换为类型“System.Object”所导致的。同时还介绍了相关的错误信息和解决方法。 ... [详细]
    • 如何在php文件中添加图片?
      本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
    • Postgresql备份和恢复的方法及命令行操作步骤
      本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
    • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
    • 本文介绍了Java集合库的使用方法,包括如何方便地重复使用集合以及下溯造型的应用。通过使用集合库,可以方便地取用各种集合,并将其插入到自己的程序中。为了使集合能够重复使用,Java提供了一种通用类型,即Object类型。通过添加指向集合的对象句柄,可以实现对集合的重复使用。然而,由于集合只能容纳Object类型,当向集合中添加对象句柄时,会丢失其身份或标识信息。为了恢复其本来面貌,可以使用下溯造型。本文还介绍了Java 1.2集合库的特点和优势。 ... [详细]
    • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
    • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
      作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
    • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
    author-avatar
    手机用户2502909693
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有