全部產品
Search
文件中心

ApsaraDB RDS:RDS for MySQL為無主鍵表添加主鍵

更新時間:Sep 27, 2024

本文介紹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'
);

解決方案

  • 添加隱式主鍵
    1. 使用如下命令查看參數implicit_primary_key的值是否為ON
      show global variables  like 'implicit_primary_key';
    2. 執行如下命令修改無主鍵表:
      alter table <表名> engine=innodb;
      說明
      • 執行過程中會禁止資料寫入表,但是仍然可以讀取。
      • implicit_primary_keyON時,修改表的引擎會自動添加隱式主鍵。
  • 直接添加主鍵
    執行如下命令為無主鍵表添加主鍵:
    ALTER TABLE <表名> ADD PRIMARY KEY (<需要設為主鍵的列名>);