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.25 レプリケーションと予約語

古いマスターから新しいスレーブに複製しようとするとき、およびスレーブで実行中の新しい MySQL バージョンで予約語である識別子をマスター上で使用するときに、問題が発生する可能性があります。たとえば、4.1 以降のスレーブに複製している 4.0 マスター上で名前が current_user のテーブルカラムを使用しているときです。CURRENT_USER は MySQL 4.1 以降で予約語であるためです。このような場合、レプリケーションはエラー 1064 You have an error in your SQL syntax... で失敗する可能性があります (予約語を使用して名前が付けられたデータベースまたはテーブル、または予約語を使用して名前が付けられたカラムを持つテーブルが、レプリケーションから除外されていても)。これは、各 SQL イベントが実行前にスレーブによって解析される必要があるため、スレーブはどのデータベースオブジェクトが影響されるかがわかるという事実によります。スレーブは、イベントが解析されたあとにのみ、--replicate-do-db--replicate-do-table, --replicate-ignore-db、および --replicate-ignore-table で定義されたフィルタリングルールを適用できます。

スレーブが予約語と見なす、マスター上のデータベース、テーブル、またはカラム名の問題を回避するには、次のいずれかを行ってください。

  • マスター上で 1 つまたは複数の ALTER TABLE ステートメントを使用して、これらの名前がスレーブ上で予約語と見なされるデータベースオブジェクトの名前を変更するか、古い名前を使用する SQL ステートメントを変更して代わりに新しい名前を使用してください。

  • これらのデータベースオブジェクト名を使用する SQL ステートメントで、それらの名前をバッククォート文字 (`) で囲まれた識別子として書いてください。

MySQL バージョン別の予約語の一覧については、「MySQL Server Version Reference」の「Reserved Words」を参照してください。識別子を囲むルールについては、セクション9.2「スキーマオブジェクト名」を参照してください。


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.