Mysqli-alter-command
MySQLi-ALTERコマンド
MySQLi ALTER コマンドは、テーブルの名前やテーブルフィールドを変更する場合、またはテーブルの既存の列を追加または削除する場合に非常に便利です。
列のドロップ、追加、または再配置
MySQLiテーブルの上から既存の列 i を削除する場合、次のように ALTER コマンドとともに DROP 句を使用します-
列がテーブルに残っている場合、 DROP は機能しません。
列を追加するには、ADDを使用して列定義を指定します。 次の文は、 i 列をtutorials_alterに復元します-
このステートメントを発行すると、testalterには最初にテーブルを作成したときと同じ2つの列が含まれますが、構造はまったく同じではありません。 これは、デフォルトでテーブルの最後に新しい列が追加されるためです。 したがって、 i は元々mytblの最初の列でしたが、現在は最後の列です。
テーブル内の特定の位置に列が必要であることを示すには、FIRSTを使用して最初の列にするか、col_nameの後にAF_col_nameの後に新しい列を配置することを示します。 各ステートメントの後にSHOW COLUMNSを使用して、次のALTER TABLEステートメントを試して、各ステートメントの効果を確認します-
FIRSTおよびAFTER指定子は、ADD句でのみ機能します。 つまり、テーブル内の既存の列の位置を変更する場合は、最初に列を削除してから、新しい位置に追加する必要があります。
列の定義または名前の変更
列の定義を変更するには、ALTERコマンドとともに MODIFY または CHANGE 句を使用します。 たとえば、列 c をCHAR(1)からCHAR(10)に変更するには、次のようにします-
CHANGEでは、構文が少し異なります。 CHANGEキーワードの後に、変更する列に名前を付けてから、新しい名前を含む新しい定義を指定します。 次の例を試してください。
列名を変更せずにCHANGEを使用してjをBIGINTからINTに戻す場合、ステートメントは期待どおりになります-
NULLおよびデフォルト値属性に対するALTER TABLEの効果-
列を変更または変更するときに、列にNULL値を含めることができるかどうか、およびそのデフォルト値を指定することもできます。 実際、これを行わない場合、MySQLiはこれらの属性に値を自動的に割り当てます。
次に例を示します。NOTNULL列の値はデフォルトで100です。
上記のコマンドを使用しない場合、MySQLiはすべての列のNULL値を埋めます。
列のデフォルト値の変更
ALTERコマンドを使用して、任意の列のデフォルト値を変更できます。 次の例を試してください。
ALTERコマンドとともにDROP句を使用すると、任意の列からデフォルトの制約を削除できます。
テーブルタイプの変更
ALTERコマンドとともに TYPE 句を使用して、テーブルタイプを使用できます。
テーブルの現在のタイプを調べるには、SHOW TABLE STATUSステートメントを使用します。
テーブルの名前を変更する
テーブルの名前を変更するには、ALTER TABLEステートメントの RENAME オプションを使用します。 次の例を試して、tutorials_alterの名前をtutorials_bksに変更してください。
ALTERコマンドを使用して、MySQLファイルのINDEXを作成および削除できます。 この機能については、次の章で説明します。