プライマリ・キーなしmysqlテーブル作成プライマリ・キー

1152 ワード

これは筆者が実際の仕事の過程で出会った問題である.背景:いくつかの理由で、以前のデータベースのテーブルにプライマリ・キーがなかったため、プライマリ・ライブラリが一括削除と更新を実行すると、スタンバイ・ライブラリがプライマリ・ライブラリに追いつかないことがあります.
では、以前に残ったテーブルではプライマリ・キーを再確立する必要がありますが、ここではプライマリ・キーとしてフィールドの組合せを選択できないテーブルが発生する可能性があります.では、この時どうすればいいですか.
一般的には、まず、データ・テーブルがパーティション・テーブルであるかどうかを考慮する必要があります.
パーティション・テーブルまたは非パーティション・テーブルの表示方法:
構文:
SHOW CREATE TABLE   ;

この構文では、テーブル作成文が表示されます.テーブル作成文では、パーティション・テーブルであるかどうか、パーティション・フィールドであるかどうかを直感的に見ることができます.
では、元の問題に戻ります.どのようにして構築されたデータテーブルにプライマリ・キーを確立しますか?ここでは、パーティション・テーブルと非パーティション・テーブルの2つに分けられます.
パーティション表のパーティションフィールドはプライマリ・キーに含める必要があるため
1非パーティション表
新しいプライマリ・キーはidから増加しました.
構文:test_table列のデータベース・テーブル
alter table test_table add id BIGINT(30);
alter table test_table change id id BIGINT(30) not null AUTO_INCREMENT PRIMARY KEY;

2パーティション表
新しいプライマリ・キーはidから増加しました.
構文:データベース・テーブルがpartition_tableの列で、パーティション・テーブルのパーティション・フィールドがDayです.
alter table partition_table add id BIGINT(30) not null auto_increment ,add primary key(id,`Day`);