在MySQL中同时加入主键列到现有的表,我得到错误1795(HY000)

问题描述 投票:0回答:2

我是新来这个平台,所以如果我犯任何错误见谅。

在MySQL 8.0中,我将尝试使用下面的命令来添加主键,

ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY;

ERROR 1795(HY000):InnoDB的目前支持每次一个FULLTEXT索引创建

这可能是解决方案

我曾经尝试这样做

ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, ALGORITHM=COPY;

但有以下错误

ERROR 1264(22003):在167排出来的列“列”范围的值的

这是我现有的表

CREATE TABLE `TELECOM_NUMBER` (
  `CONTACT_MECH_ID` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `COUNTRY_CODE` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `MOBILE_NUMBER` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `AREA_CODE` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `CONTACT_NUMBER` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `ASK_FOR_NAME` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `LAST_UPDATED_STAMP` datetime DEFAULT NULL,
  `LAST_UPDATED_TX_STAMP` datetime DEFAULT NULL,
  `CREATED_STAMP` datetime DEFAULT NULL,
  `CREATED_TX_STAMP` datetime DEFAULT NULL,
  KEY `INX_TELECOM` (`CONTACT_MECH_ID`),
  FULLTEXT KEY `TELECOM_NUMBER_FT` (`CONTACT_NUMBER`),
  FULLTEXT KEY `TELECOM_NUMBER_FTS` (`CONTACT_NUMBER`,`MOBILE_NUMBER`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 

更新:这个解决方案的工作,但仍处于测试阶段,一切都很好。

https://stackoverflow.com/a/43820504/10862513

改变存储引擎。

mysql primary-key full-text-indexing
2个回答
1
投票

尝试AUTO_INCREMENT像下面前写的主键:

ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT;

1
投票

首先,您需要添加列,然后使用ADD CONSTRAINT命令添加约束。做到这一点如下: -

1)ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT;

2)ALTER TABLE TELECOM_NUMBER ADD CONSTRAINT primary_key_constraint_name PRIMARY KEY (pk_id);

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.