MYSQL建立外键失败几种情况记录Can't create table不能创建表_MySQL
Mysql外键
bitsCN.com 像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导。在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕 的150错误的常见原因列出来了,并且我以可能性的大小作了排序,已知的原因:
1、 两个字段的类型或者大小不严格匹配,例如,如果一个是INT(10), 那么外键也必须设置成INT(10), 而不是 INT(11) 也不能是 TINYINT. 你得使用 SHOW 命令来查看字段的大小,因为一些查询浏览器有时候把 int(10) 和int(11) 都显示为integer。另外,你还必须确定两个字段是否一个为 SIGNED,而另一个又是UNSIGNED, 这两字段必须严格地一致匹配,更多关于signed 和 unsigned 的信息,请参阅:http://www.verysimple.com/blog/?p=57
2、 你试图引用的其中一个外键没有建立起索引,或者不是一个primary key , 如果其中一个不是primary key 的,你必须为它创建一个索引。
3、外键的名字是一个已经存在的一个键值了,这个时候,你应该检查你的数据库以确保外健名字是唯一的,或者你在键名后面加上几个随机的字符以测试是否是这个原因。
4、 其中一个或者两个表是MyISAM引擎的表,若想要使用外键约束,必须是InnoDB引擎,(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键),你可以通过查询浏览器来设置表的引擎类型
5、 你可能设置了ON DELETE SET NULL, 但是相关的键的字段又设置成了NOTS NULL 值。你可能通过修改cascade 的属性值或者把字段属性设置成 allow null 来搞定这个bug.
6、 请确定你的Charset 和 Collate 选项在表级和字段级上的一致
7、 你可能设置为外键设置了一个默认值,如 default=0
8, 在这个关系里面,其中的一个字段是一个混合键值中的一个,它没有自己独立的索引,这时,你必须为它创建一个独立的索引。
9、 ALTER 声明中有语法错误
最后:建立外键有点麻烦,可以直接用Myeclipse生成ddl。。。bitsCN.com

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP가 MySQL에 연결 한 후 페이지가 비어 있고 Die () 함수가 실패한 이유가 있습니다. PHP와 MySQL 데이터베이스 간의 연결을 배울 때는 종종 혼란스러운 것들이 발생합니다 ...

많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...

Linux 시스템과 함께 제공되는 Python 통역사를 제거하는 문제와 관련하여 많은 Linux 배포판이 설치 될 때 Python 통역사를 사전 설치하고 패키지 관리자를 사용하지 않습니다 ...

이 기사에서는 데비안 시스템에서 Zookeeper 성능을 최적화하는 방법에 대해 설명합니다. 우리는 하드웨어, 운영 체제, Zookeeper 구성 및 모니터링에 대한 조언을 제공 할 것입니다. 1. 시스템 수준에서 스토리지 미디어 업그레이드 최적화 : 기존의 기계식 하드 드라이브를 SSD 솔리드 스테이트 드라이브로 교체하면 I/O 성능이 크게 향상되고 액세스 대기 시간이 줄어 듭니다. 스왑 파티셔닝 비활성화 : 커널 매개 변수를 조정하여 스왑 파티션에 대한 의존성을 줄이고 자주 메모리 및 디스크 스왑으로 인한 성능 손실을 피하십시오. 파일 디스크립터 상한도 : Zookeeper의 처리 효율에 영향을 미치는 리소스 한계를 피하기 위해 시스템별로 동시에 파일 설명 자의 수를 늘리십시오. 2. Zookeeper 구성 최적화 zoo.cfg 파일 구성

PC 및 모바일 측면에서 동일한 페이지를 공유하고 캐시 문제를 처리하는 방법은 무엇입니까? Baota 배경, PC 측면을 만드는 방법 및 ...

Django 및 MySQL을 사용하여 Django 및 MySQL 데이터베이스를 사용할 때 큰 데이터 볼륨을 처리합니다. 데이터 볼륨이 수십만에서 2 백만에 도달하면 ...

PHP ...

데비안 시스템의 선택과 관련하여,이 기사는 데비안 시스템의 장점을 탐색하고 그것이 귀하의 요구에 적합한 지 여부를 결정하는 데 도움이됩니다. 이미지는 거부와 관련된 누락 된 검색 결과를 보여 주며, 이는 더 넓은 관점에서 데비안 시스템을 살펴 보도록 촉구합니다. 데비안 커뮤니티 및 안정성 : 데비안은 크고 활발한 오픈 소스 커뮤니티로 유명합니다. 즉, 많은 양의 문서, 튜토리얼 및 커뮤니티 지원에 쉽게 액세스하여 발생하는 문제를 신속하게 해결할 수 있습니다. 시스템의 안정성은 특히 서버 환경에서 데비안의 하이라이트이며, 이는 다른 분포보다 훨씬 안정적입니다. 데비안 vs. 우분투 : 우분투와 비교하여 데비안
