MYSQL ERRNO 150(TinyINT非null)

时间:2014-01-26 15:53:08

标签: mysql ddl

  

[Err] 1005 - 无法创建表'pokebob.pn_pokedex'(错误号:150)

CREATE  TABLE IF NOT EXISTS `pn_pokedex` (
      `pokedexId` INT(11) NOT NULL AUTO_INCREMENT ,
  `memberId` INT(11) NOT NULL ,
  `1` TINYINT NOT NULL ,
  `2` TINYINT NOT NULL ,
  `3` TINYINT NOT NULL ,
  `4` TINYINT NOT NULL ,
  `5` TINYINT NOT NULL ,
  `6` TINYINT NOT NULL ,
  `7` TINYINT NOT NULL ,
  `8` TINYINT NOT NULL ,
  `9` TINYINT NOT NULL ,
  `10` TINYINT NOT NULL ,
  `11` TINYINT NOT NULL ,
  `12` TINYINT NOT NULL ,
  `13` TINYINT NOT NULL ,
  `14` TINYINT NOT NULL ,
  `15` TINYINT NOT NULL ,
  `16` TINYINT NOT NULL ,
  `17` TINYINT NOT NULL ,
  `18` TINYINT NOT NULL ,
  `19` TINYINT NOT NULL ,
  `20` TINYINT NOT NULL ,
  `21` TINYINT NOT NULL ,
  `22` TINYINT NOT NULL ,
  `23` TINYINT NOT NULL ,
  `24` TINYINT NOT NULL ,
  `25` TINYINT NOT NULL ,
  `26` TINYINT NOT NULL ,
  `27` TINYINT NOT NULL ,
  `28` TINYINT NOT NULL ,
  `29` TINYINT NOT NULL ,
  `30` TINYINT NOT NULL ,
  `31` TINYINT NOT NULL ,
  `32` TINYINT NOT NULL ,
  `33` TINYINT NOT NULL ,
  `34` TINYINT NOT NULL ,
  `35` TINYINT NOT NULL ,
  `36` TINYINT NOT NULL ,
  `37` TINYINT NOT NULL ,
  `38` TINYINT NOT NULL ,
  `39` TINYINT NOT NULL ,
  `40` TINYINT NOT NULL ,
  `41` TINYINT NOT NULL ,
  `42` TINYINT NOT NULL ,
  `43` TINYINT NOT NULL ,
  `44` TINYINT NOT NULL ,
  `45` TINYINT NOT NULL ,
  `46` TINYINT NOT NULL ,
  `47` TINYINT NOT NULL ,
  `48` TINYINT NOT NULL ,
  `49` TINYINT NOT NULL ,
  `50` TINYINT NOT NULL ,
  `51` TINYINT NOT NULL ,
  `52` TINYINT NOT NULL ,
  `53` TINYINT NOT NULL ,
  `54` TINYINT NOT NULL ,
  `55` TINYINT NOT NULL ,
  `56` TINYINT NOT NULL ,
  `57` TINYINT NOT NULL ,
  `58` TINYINT NOT NULL ,
  `59` TINYINT NOT NULL ,
  `60` TINYINT NOT NULL ,
  `61` TINYINT NOT NULL ,
  `62` TINYINT NOT NULL ,
  `63` TINYINT NOT NULL ,
  `64` TINYINT NOT NULL ,
  `65` TINYINT NOT NULL ,
  `66` TINYINT NOT NULL ,
  `67` TINYINT NOT NULL ,
  `68` TINYINT NOT NULL ,
  `69` TINYINT NOT NULL ,
  `70` TINYINT NOT NULL ,
  `71` TINYINT NOT NULL ,
  `72` TINYINT NOT NULL ,
  `73` TINYINT NOT NULL ,
  `74` TINYINT NOT NULL ,
  `75` TINYINT NOT NULL ,
  `76` TINYINT NOT NULL ,
  `77` TINYINT NOT NULL ,
  `78` TINYINT NOT NULL ,
  `79` TINYINT NOT NULL ,
  `80` TINYINT NOT NULL ,
  `81` TINYINT NOT NULL ,
  `82` TINYINT NOT NULL ,
  `83` TINYINT NOT NULL ,
  `84` TINYINT NOT NULL ,
  `85` TINYINT NOT NULL ,
  `86` TINYINT NOT NULL ,
  `87` TINYINT NOT NULL ,
  `88` TINYINT NOT NULL ,
  `89` TINYINT NOT NULL ,
  `90` TINYINT NOT NULL ,
  `91` TINYINT NOT NULL ,
  `92` TINYINT NOT NULL ,
  `93` TINYINT NOT NULL ,
  `94` TINYINT NOT NULL ,
  `95` TINYINT NOT NULL ,
  `96` TINYINT NOT NULL ,
  `97` TINYINT NOT NULL ,
  `98` TINYINT NOT NULL ,
  `99` TINYINT NOT NULL ,
  `100` TINYINT NOT NULL ,
  `101` TINYINT NOT NULL ,
  `102` TINYINT NOT NULL ,
  `103` TINYINT NOT NULL ,
  `104` TINYINT NOT NULL ,
  `105` TINYINT NOT NULL ,
  `106` TINYINT NOT NULL ,
  `107` TINYINT NOT NULL ,
  `108` TINYINT NOT NULL ,
  `109` TINYINT NOT NULL ,
  `110` TINYINT NOT NULL ,
  `111` TINYINT NOT NULL ,
  `112` TINYINT NOT NULL ,
  `113` TINYINT NOT NULL ,
  `114` TINYINT NOT NULL ,
  `115` TINYINT NOT NULL ,
  `116` TINYINT NOT NULL ,
  `117` TINYINT NOT NULL ,
  `118` TINYINT NOT NULL ,
  `119` TINYINT NOT NULL ,
  `120` TINYINT NOT NULL ,
  `121` TINYINT NOT NULL ,
  `122` TINYINT NOT NULL ,
  `123` TINYINT NOT NULL ,
  `124` TINYINT NOT NULL ,
  `125` TINYINT NOT NULL ,
  `126` TINYINT NOT NULL ,
  `127` TINYINT NOT NULL ,
  `128` TINYINT NOT NULL ,
  `129` TINYINT NOT NULL ,
  `130` TINYINT NOT NULL ,
  `131` TINYINT NOT NULL ,
  `132` TINYINT NOT NULL ,
  `133` TINYINT NOT NULL ,
  `134` TINYINT NOT NULL ,
  `135` TINYINT NOT NULL ,
  `136` TINYINT NOT NULL ,
  `137` TINYINT NOT NULL ,
  `138` TINYINT NOT NULL ,
  `139` TINYINT NOT NULL ,
  `140` TINYINT NOT NULL ,
  `141` TINYINT NOT NULL ,
  `142` TINYINT NOT NULL ,
  `143` TINYINT NOT NULL ,
  `144` TINYINT NOT NULL ,
  `145` TINYINT NOT NULL ,
  `146` TINYINT NOT NULL ,
  `147` TINYINT NOT NULL ,
  `148` TINYINT NOT NULL ,
  `149` TINYINT NOT NULL ,
  `150` TINYINT NOT NULL ,
  `151` TINYINT NOT NULL 
[Msg] Finished - Unsuccessfully
--------------------------------------------------

2 个答案:

答案 0 :(得分:1)

我在创建表时遇到两个问题:

1,您没有使用结束括号)关闭表定义(错误#1064)

...
`151` TINYINT NOT NULL 
);

2,使用PRIMARY KEY列时,您需要定义AUTO_INCREMENT(错误#1075)。

您可以通过扩展AUTO_INCREMENT列定义来快速实现此目的:

`pokedexId` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
...

错误#1005:

  

无法创建表格。如果错误消息引用错误150,则表创建失败,因为未正确形成外键约束。如果错误消息引用错误-1,则表创建可能失败,因为该表包含与内部InnoDB表的名称匹配的列名。

     

参考:http://dev.mysql.com/doc/refman/5.0/en/innodb-error-codes.html

答案 1 :(得分:0)

来自MySQL - FOREIGN KEY Constraints Documentation

  

如果重新创建已删除的表,则它必须具有符合引用它的外键约束的定义。它必须具有正确的列名和类型,并且必须在引用的键上具有索引。 如果不满意,MySQL会返回错误号1005并在错误消息中引用错误150.