概述
本文介绍云数据库 RDS MySQL 版表在没有主键时如何添加主键。
详细信息
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
- 执行如下SQL语句,查看是否有主键。
select table_schema, table_name from information_schema.tables where (table_schema, table_name) not in (select distinct table_schema, table_name from information_schema.columns where COLUMN_KEY='PRI' ) and table_schema not in ('sys', 'mysql', 'information_schema', 'performance_schema');
系统显示类似如下。 - 执行如下SQL语句,查看参数
implicit_primary_key
的值是否为ON
。show global variables like 'implicit_primary_key';
系统显示类似如下。
说明:如果查询没有该参数或值为OFF,请您提交工单进行修改。
- 执行如下SQL语句,修改无主键表。
alter table [$Table_Name] engine=innodb;
说明:
- [$Table_Name]为表名。
- 执行过程中会禁止数据写入表,但是仍然可以读取。
- 当implicit_primary_key为ON时,修改表的引擎会自动添加隐式主键。
- 执行如下SQL语句,为无主键表添加主键。
ALTER TABLE [$Table_Name] ADD PRIMARY KEY ([$Type_Name]);
注:[$Type_Name]为需要添加的主键名。
适用于
- 云数据库 RDS MySQL 版
在文档使用中是否遇到以下问题
更多建议
匿名提交