Can't create table 'data_test.dim_event' (errno: 150)

 

关于Error Code: 1005. Can't create table 'data_test.dim_event' (errno: 150)

在创建两个表的外联时,遇到的无法创建表的问题,需要把非主键的值设为索引

CREATE TABLE IF NOT EXISTS `dwd_event_dot` (
  `date_time` INT NULL COMMENT '时间',
  `id_event` INT NULL COMMENT '事件id',
  `visit` INT NULL COMMENT '访问量',
  `int_attr_1` INT NULL COMMENT 'Int类型属性1',
  `int_attr_2` INT NULL COMMENT 'Int类型属性2',
  `int_attr_3` INT NULL COMMENT 'Int类型属性3',
  `int_attr_4` INT NULL COMMENT 'Int类型属性4',
  `int_attr_5` INT NULL COMMENT 'Int类型属性5',
  `string_attr_1` VARCHAR(255) NULL COMMENT '字符类型属性1',
  `string_attr_2` VARCHAR(255) NULL COMMENT '字符类型属性2',
  `string_attr_3` VARCHAR(255) NULL COMMENT '字符类型属性3',
  `string_attr_4` VARCHAR(255) NULL COMMENT '字符类型属性4',
  `string_attr_5` VARCHAR(255) NULL COMMENT '字符类型属性5'
--   alter TABLE `table_name` ADD INDEX index_name ( `column` ) )
 )
ENGINE = InnoDB;

CREATE INDEX dwd_event_dot_id_event ON dwd_event_dot (id_event);

-- -- Table `dim_event`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `dim_event` (
  `id` INT NOT NULL,
  `code` VARCHAR(45) NULL,
  `name` VARCHAR(45) NULL COMMENT '事件名称',
  PRIMARY KEY (`id`),
  CONSTRAINT `fk_dim_event_dwd_event_dot1`
    FOREIGN KEY (`id`)
    REFERENCES `dwd_event_dot` (`id_event`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

posted @ 2017-07-20 13:58  Aogon  阅读(299)  评论(0)    收藏  举报