在MYSQL中,将主键列添加到现有表时,出现错误1795(hy000)
我是这个平台的新手,所以如果我犯了任何错误,请原谅我 在MYSQL 8.0中,我尝试使用以下命令添加主键:在MYSQL中,将主键列添加到现有表时,出现错误1795(hy000),mysql,primary-key,full-text-indexing,Mysql,Primary Key,Full Text Indexing,我是这个平台的新手,所以如果我犯了任何错误,请原谅我 在MYSQL 8.0中,我尝试使用以下命令添加主键: ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY; 错误1795(HY000):InnoDB目前支持一次创建一个全文索引 解决办法是什么 我试过这个 ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT
ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY;
错误1795(HY000):InnoDB目前支持一次创建一个全文索引
解决办法是什么
我试过这个
ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, ALGORITHM=COPY;
但是得到了以下错误
错误1264(22003):第167行“columns”列的值超出范围
这是我现有的桌子
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
更新:
这个解决方案有效,但仍在测试一切正常
更改存储引擎。尝试在自动递增之前写入主键,如下所示:
ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT;
您需要先添加列,然后使用
addconstraint
命令添加约束。按如下方式操作:-
1) ALTER TABLE TELECOM\u NUMBER ADD pk\u id BIGINT UNSIGNED NOT NULL AUTO\u INCREMENT代码>
2) ALTER TABLE TELECOM\u NUMBER ADD CONSTRAINT primary\u key\u CONSTRAINT\u name primary key(主键id)代码>
希望能有所帮助。您看到了吗?此答案是错误1075(42000):表定义不正确;只能有一个自动列,必须将其定义为键