首批通过分布式安全可靠测评,为关键业务系统打造
通过 ALTER TABLE 为表添加主键报错
更新时间:2023-12-07 03:16
本文介绍通过 ALTER TABLE 为表添加主键报错的原因以及解决方法。
适用版本
OceanBase 数据库 V2.x 和 V3.x 版本
通过修改表的方式添加主键
OceanBase 数据库的每一张表都有主键,并在内部以主键为序组织数据。如果在创建用户表时不显式指定主键,系统会自动为表生成隐藏主键,隐藏主键不可被查询。有关隐藏主键的详细信息,请参见 OceanBase 数据库的无主键表介绍。
目前,OceanBase 数据库不支持通过 ALTER TABLE 语句为表添加主键,例如:
obclient> CREATE TABLE t0( id int NOT NULL, name VARCHAR(20));
obclient> ALTER TABLE t0 ADD CONSTRAINT pk PRIMARY KEY(id);
以上 SQL 执行会报错。
对于 Oracle 模式,错误信息如下。
ORA-00600: internal error code, arguments: -4007, Not supported feature or function对于 MySQL 模式,错误信息如下。
ERROR 1235 (0A000): Not supported feature or function
因此,如果您需要修改数据表的主键,可以创建一张新表并指定主键,然后将数据迁移到新表中。