第一张表
DROP TABLE IF EXISTS `city`;
CREATE TABLE `city` (
  `city_id` int(11) NOT NULL,
  `rogin_id` int(11) DEFAULT NULL,
  `city_name` varchar(255) DEFAULT NULL,
  `city_type` int(11) DEFAULT NULL,
  PRIMARY KEY (`city_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;第二张表
CREATE TABLE category (
  id int(12) NOT NULL auto_increment,
  sort int(3) default '10',
  name varchar(50) NOT NULL,
  parent_id int(12) NOT NULL default '0',
  PRIMARY KEY  (id)
) ;第三张表
CREATE TABLE `shopinfo` (
  `KK_NUM` varchar(100) NOT NULL,
  `USER_NAME` varchar(100) default NULL,
  `PASS` varchar(100) default NULL,
  `E_MAIL` varchar(100) default NULL,
  `SHOP_LEVEL` int(11) default NULL,
  `SHOP_NAME` varchar(100) default NULL,
  `SHOP_ADDRESS` varchar(100) default NULL,
  `RG_TIME` date default NULL,
  `CITY_ID` int(11) default NULL,
  `INDUSTY_ID` int(12) default NULL,
  `OPERATING_YEARS` int(11) default NULL,
  `BUSSNESS` varchar(200) default NULL,
  `sort` varchar(50) default NULL,
  `pic` varchar(50) default NULL,
  PRIMARY KEY  (`KK_NUM`),
  CONSTRAINT `FK_SHOP_INF_REFERENCE_CITY` FOREIGN KEY (`CITY_ID`) REFERENCES `city` (`city_id`),
  CONSTRAINT `FK_SHOP_INF_REFERENCE_INDUSTY` FOREIGN KEY (`INDUSTY_ID`) REFERENCES `category` (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;建第三张表的时候老是出现这个错误:
百度了也没改出来:
ERROR 1005 : Can't create table '.\wanye\shopinfo.frm' (errno: 121)

解决方案 »

  1.   

    今天在改数据库的时候,发现老是弄死加不上一个fk constraint。老是报错“cant create table xxx, err no. 1005”。超级郁闷。后来发现,被引用的col和指向的col的类型必须一样,除了满足都是“INTEGER”(比如是INTEGER的话),“UNSIGNED”条件2个列也必须一样。当时我那两个列虽然都是INTEGER,但是一个是UNSIGNED,一个是SIGNED,所以无法创建外键。