Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


17.4.1.1 レプリケーションと AUTO_INCREMENT

AUTO_INCREMENTLAST_INSERT_ID()、および TIMESTAMP 値のステートメントレベルレプリケーションは正しく行われますが、次の例外があります。

  • MySQL 5.6.10 より前のステートメントベースレプリケーションを使用するときは、スレーブ上のテーブル内の AUTO_INCREMENT カラムは、マスター上の同じカラムに一致する必要があります。つまり、AUTO_INCREMENT カラムは AUTO_INCREMENT カラムに複製される必要があります。(Bug #12669186)

  • AUTO_INCREMENT カラムを更新するトリガーまたは関数を呼び出すステートメントは、ステートメントベースレプリケーションでは正しく複製されません。MySQL 5.6 では、このようなステートメントは安全でないとマークされます。(Bug #45677)

  • 複合主キーを持ち、この複合キーの先頭カラムでない AUTO_INCREMENT カラムを含むテーブルに INSERT を実行することは、ステートメントベースロギングまたはレプリケーションにとって安全ではありません。MySQL 5.6.6 以降では、このようなステートメントは安全でないとマークされます。(Bug #11754117、Bug #45670)

    この問題は InnoDB ストレージエンジンを使用するテーブルに影響しません。AUTO_INCREMENT カラムを持つ InnoDB テーブルには、自動インクリメントカラムが唯一または左端のカラムであるキーが少なくとも 1 つ必要であるためです。

  • ALTER TABLE でテーブルに AUTO_INCREMENT カラムを追加した場合、行の順序がスレーブとマスターで同じにならない場合があります。これが発生するのは、行が番号付けされる順序が、テーブルに使用される固有のストレージエンジンおよび行が挿入された順序に依存するためです。マスターとスレーブで同じ順序を持つことが重要である場合は、行を並べ替えてから AUTO_INCREMENT 番号を割り当てる必要があります。カラム col1col2 を持つテーブル t1AUTO_INCREMENT カラムを追加するものと仮定すると、次のステートメントは t1 と同じであるけれども AUTO_INCREMENT カラムを持つ新しいテーブル t2 を生成します。

    CREATE TABLE t2 LIKE t1;
    ALTER TABLE t2 ADD id INT AUTO_INCREMENT PRIMARY KEY;
    INSERT INTO t2 SELECT * FROM t1 ORDER BY col1, col2;
    重要

    マスターとスレーブの両方で同じ順序を保証するには、ORDER BY 句で t1すべてのカラムの名前を指定する必要があります。

    上記の指示には CREATE TABLE ... LIKE の制限が適用されます。外部キー定義は DATA DIRECTORY および INDEX DIRECTORY テーブルオプションと同様に無視されます。テーブル定義がこれらの特性を含む場合、t1 の作成に使用したものと同じであるけれども AUTO_INCREMENT カラムを追加した CREATE TABLE ステートメントを使用して、t2 を作成してください。

    AUTO_INCREMENT カラムを持つコピーを作成および移入するために使用する方法にかかわらず、最終手順は元のテーブルを削除してコピーの名前を変更することです。

    DROP t1;
    ALTER TABLE t2 RENAME t1;

    セクションB.5.7.1「ALTER TABLE での問題」も参照してください。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.