【问题标题】:In MYSQL while adding the primary key column to an existing table I am getting error 1795(hy000)在 MYSQL 中将主键列添加到现有表时出现错误 1795(hy000)
【发布时间】:2019-02-08 06:14:02
【问题描述】:

我是这个平台的新手,所以如果我犯了任何错误,请原谅我。

在 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;

但出现以下错误

错误 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


【解决方案1】:

尝试在 AUTO_INCREMENT 之前写下主键,如下所示:

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

【讨论】:

    【解决方案2】:

    您需要先添加列,然后使用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);

    希望对你有帮助。

    【讨论】:

    • 得到这个错误 ERROR 1075 (42000): Incorrect table definition;只能有一个自动列,并且必须定义为一个键
    猜你喜欢
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 2020-12-21
    • 2012-11-25
    • 2014-02-20
    相关资源
    最近更新 更多