1170 - столбец BLOB / TEXT «XXX», используемый в спецификации ключа без длины ключа - PullRequest
0 голосов
/ 19 января 2019

Эта ошибка возникает, когда я использую long как первичный ключ для создания таблицы. Я уже проверил Ошибка MySQL: спецификация ключа без длины ключа , но я думаю, что это не решает мою проблему, поскольку я не использую текст или блоб в качестве индекса.

Не могу понять, почему long weng_id в качестве первичного ключа, но он показывает BLOB/TEXT column weng_id

SQL:

CREATE TABLE `ContentRepository`.`无标题`  (
  `weng_id` long NOT NULL,
  `content_type` tinyint(0) NOT NULL DEFAULT 0,
  `store_time` datetime(0) NOT NULL ON UPDATE CURRENT_TIMESTAMP(0),
  `create_time` datetime(0) NOT NULL,
  `modify_time` datetime(0) NOT NULL,
  `weng_url` varchar(1000) NOT NULL,
  `algorithm_tags` varchar(1000) NULL,
  `words` varchar(1000) NULL,
  `operate_tags` varchar(1000) NULL,
  `mdd_id` bigint(0) NULL,
  `related_mdd_ids` varchar(1000) NULL,
  `related_pois` varchar(1000) NULL,
  `uid` bigint(0) NOT NULL,
  `user_level` tinyint(0) NOT NULL,
  `user_contribution_score` double NULL,
  `status` tinyint(0) NOT NULL,
  `check_status` tinyint(0) NULL,
  `checked_time` datetime(0) NULL,
  `static_score` double NULL,
  `static_level` int(0) NULL,
  `dynamic_level` int(0) NULL,
  `dynamic_score` double NULL,
  `show_channel` int(0) NULL,
  `show_num` bigint(0) NULL,
  `click_num` bigint(0) NULL,
  `favorite_num` bigint(0) NOT NULL,
  `comment_num` bigint(0) NOT NULL,
  `share_num` bigint(0) NOT NULL,
  `collect_num` bigint(0) NOT NULL,
  `weng_type` tinyint(0) NOT NULL,
  `pricture_urls` varchar(1000) NOT NULL,
  `video_url` varchar(1000) NULL,
  `content` varchar(8000) NULL,
  `weng_level` tinyint(0) NOT NULL,
  `weng_category` tinyint(0) NOT NULL,
  `picture_num` int(0) NOT NULL,
  PRIMARY KEY (`weng_id`),
  INDEX `idx_create`(`create_time`) USING BTREE,
  INDEX `idx_modify`(`modify_time`) USING BTREE,
  INDEX `idx_store`(`store_time`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

1 Ответ

0 голосов
/ 19 января 2019

long, вероятно, не тот тип, о котором вы думаете. Вы, вероятно, хотите bigint:

CREATE TABLE `ContentRepository`.`无标题`  (
  `weng_id` bigint NOT NULL,
  `content_type` tinyint(0) NOT NULL DEFAULT 0,
   . . .
)

long - большая строка (mediumtext). Не подходит для индексации вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...