本文介紹RDS for MySQL的表在沒有主鍵時如何添加主鍵。
查看無主鍵表
執行如下命令查看是否有無主鍵表: 
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'
);
解決方案
- 添加隱式主鍵
- 使用如下命令查看參數implicit_primary_key的值是否為ON。
show global variables like 'implicit_primary_key';
- 執行如下命令修改無主鍵表:
alter table <表名> engine=innodb;說明- 執行過程中會禁止資料寫入表,但是仍然可以讀取。
- 當implicit_primary_key為ON時,修改表的引擎會自動添加隱式主鍵。
- 使用如下命令查看參數implicit_primary_key的值是否為ON。
- 直接添加主鍵 執行如下命令為無主鍵表添加主鍵:
ALTER TABLE <表名> ADD PRIMARY KEY (<需要設為主鍵的列名>);