OceanBaseデータベースのMySQLモードにおける列の操作には、末尾への列追加、末尾以外への列追加、列の削除、列名の変更、並べ替え、列型の変更、列のデフォルト値の管理、制約の管理、自動インクリメント列の値の変更が含まれます。
列の追加
OceanBaseデータベースのMySQLモードでは、列を追加する操作は 末尾への列追加 と 末尾以外への列追加 に分かれており、以下にそれぞれ説明します。
末尾への列追加
テーブルの末尾に列を追加する構文は以下のとおりです:
ALTER TABLE table_name ADD COLUMN column_name data_type;
関連パラメータの説明は以下のとおりです:
table_name:列を追加する対象のテーブル名を指定します。column_name:追加する列名を指定します。data_type:追加する列のデータ型を指定します。
ここでは、データベースにtbl1というテーブルが存在することを前提とし、tbl1の末尾に列 c1 を追加する例を挙げて、列追加ステートメントの実行方法を説明します。
テーブルtbl1のテーブル構造情報を確認する
obclient> DESCRIBE tbl1;出力結果は以下のとおりで、このテーブルには
id、name、ageの3列が存在することがわかります。+-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(50) | NO | | NULL | | | age | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+テーブルの末尾に列
c1を追加し、その列のデータ型をINTと指定するobclient> ALTER TABLE tbl1 ADD COLUMN c1 INT;再度テーブルtbl1のテーブル構造情報を確認する
obclient> DESCRIBE tbl1;出力結果は以下のとおりで、テーブルの末尾に新たに
c1列が追加されていることがわかります。+-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(50) | NO | | NULL | | | age | int(11) | YES | | NULL | | | c1 | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
末尾以外への列追加
テーブルの末尾以外に列を追加する構文は以下のとおりです:
ALTER TABLE table_name
ADD COLUMN new_column_name data_type
{FIRST | BEFORE | AFTER} column_name;
関連パラメータの説明は以下のとおりです:
table_name:列を追加する対象のテーブル名を指定します。new_column_name:追加する列の名前を指定します。data_type:追加する列のデータ型を指定します。FIRST | BEFORE | AFTER:追加する列の位置を指定します。テーブルの先頭 (FIRST)、column_nameの前 (BEFORE)、またはcolumn_nameの後 (AFTER) に追加できます。注意
FIRSTを使用して列をテーブルの先頭に追加する場合は、column_nameを設定する必要はありません。設定するとエラーが発生します。column_name:追加する列の位置に関連する列名を指定します。
データベースに tbl1 テーブルが存在することを前提とします。tbl1 テーブルの構造情報は以下のとおりです:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
ここでは、tbl1 テーブルの先頭に c1 列を追加し、name 列の前に c2 列を追加し、name 列の後に c3 列を追加する例を挙げて、列を追加するステートメントの実行方法を説明します。
tbl1 テーブルの先頭に
c1列を追加し、この列のデータ型を INT と指定します。obclient> ALTER TABLE tbl1 ADD COLUMN c1 INT FIRST;tbl1 テーブルの name 列の前に
c2列を追加し、この列のデータ型を VARCHAR と指定します。obclient> ALTER TABLE tbl1 ADD COLUMN c2 VARCHAR(50) BEFORE name;tbl1 テーブルの name 列の後に
c3列を追加し、この列のデータ型を VARCHAR と指定して、この列がNULLであってはならない制約を設定します。obclient> ALTER TABLE tbl1 ADD COLUMN c3 VARCHAR(25) NOT NULL AFTER name;再度 tbl1 テーブルの構造情報を確認します。
obclient> DESCRIBE tbl1;出力は以下のとおりです。
+-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | c1 | int(11) | YES | | NULL | | | id | int(11) | NO | PRI | NULL | | | c2 | varchar(50) | YES | | NULL | | | name | varchar(50) | NO | | NULL | | | c3 | varchar(25) | NO | | NULL | | | age | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
列の削除
列を削除する構文は以下のとおりです:
ALTER TABLE table_name DROP COLUMN column_name
ここで、table_name は削除対象の列が存在するテーブル名を指定し、column_name は削除対象の列名を指定します。
データベースに tbl1 テーブルが存在することを前提とします。tbl1 テーブルの構造情報は以下のとおりです:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
ここでは、name 列を削除する例を用いて、列を削除するステートメントの実行方法を説明します。
obclient> ALTER TABLE tbl1 DROP COLUMN name;
削除後に再度 DESCRIBE tbl1; コマンドを実行して tbl1 テーブルの構造を確認すると、出力は以下のようになります。テーブル tbl1 には name 列が存在しません。
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
複数列の削除
構文は以下のとおりです:
ALTER TABLE table_name DROP COLUMN column_name1, DROP COLUMN column_name2, ...;
単一列を削除する場合と同様に、table_name は削除対象の列が存在するテーブル名を指定し、column_name は削除対象の列名を指定します。 データベースに tbl1 テーブルが存在すると仮定します。tbl1 テーブルの構造情報は以下のとおりです:
+-------+--------------+------+------+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+-------+--------------+------+------+---------+-------+
| C1 | NUMBER(30) | NO | PRI | NULL | NULL |
| C2 | VARCHAR(50) | YES | NULL | NULL | NULL |
| C3 | NUMBER(30) | YES | NULL | NULL | NULL |
| C4 | NUMBER(30) | YES | NULL | NULL | NULL |
| C5 | NUMBER(30) | YES | NULL | NULL | NULL |
+-------+--------------+------+------+---------+-------+
ここでは、tbl1 テーブルの C4 列と C5 列を削除する例を用いて、ALTER TABLE table_name DROP COLUMN column_name1, column_name2, ... を使用してテーブルから複数列を削除する方法を説明します。
obclient> ALTER TABLE tbl1 DROP COLUMN C4, DROP COLUMN C5;
再度 DESCRIBE tbl1; コマンドを実行して tbl1 テーブルの構造を確認すると、出力は以下のようになります。テーブル tbl1 には C4 列と C5 列が存在しません。
+-------+--------------+------+------+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+-------+--------------+------+------+---------+-------+
| C1 | NUMBER(30) | NO | PRI | NULL | NULL |
| C2 | VARCHAR(50) | YES | NULL | NULL | NULL |
| C3 | NUMBER(30) | YES | NULL | NULL | NULL |
+-------+--------------+------+------+---------+-------+
使われなくなった列のクリア
使われなくなった列をクリアする構文は以下のとおりです:
ALTER TABLE TABLE_NAME FORCE;
説明
OceanBase データベース V4.3.5 では、V4.3.5 BP2 から使われなくなった列のクリアがサポートされています。
ここでは、tbl1 テーブルの C2 列、C3 列、C4 列、C5 列をクリアする例を用いて、テーブル内の使われなくなった列をクリアする方法を説明します。
obclient> ALTER TABLE tbl1 FORCE;
列の名前変更
列の名前を変更する構文は以下の2つです:
列の名前を変更しながらデータ型も変更する
ALTER TABLE table_name CHANGE old_col_name new_col_name data_type;関連パラメータの説明は以下のとおりです:
table_name:名前を変更する列が含まれるテーブル名を指定します。old_col_name:名前を変更する列名を指定します。new_col_name:名前を変更後の列名を指定します。data_type:名前を変更する列のデータ型を指定します。現在のデータ型を指定するか、列を他のデータ型に変更することもできます。サポートされているデータ型については、後述の列の型の変更を参照してください。
列の名前のみを変更する場合
ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name関連パラメータの説明は以下のとおりです:
table_name:名前を変更する列が含まれるテーブル名を指定します。old_col_name:名前を変更する列名を指定します。new_col_name:名前を変更後の列名を指定します。
データベースにtbl1というテーブルが存在すると仮定します。tbl1のテーブル構造情報は以下のとおりです:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
ここでは、name 列の名前を c2 に変更し、age 列の名前を c3 に変更し、age 列のデータ型をVARCHARに変更する例を用いて、列の名前を変更するステートメントの実行方法を説明します。
name列の名前をc2に変更するobclient> ALTER TABLE tbl1 RENAME COLUMN name TO c2;age列の名前をc3に変更し、age列のデータ型をVARCHARに変更するobclient> ALTER TABLE tbl1 CHANGE age c3 VARCHAR(50);再度
DESCRIBE tbl1;コマンドを実行して、tbl1 テーブルのテーブル構造を確認する出力は以下のとおりです。tbl1 テーブルには
id、c2、c3の3列しかなく、c3列のデータ型は VARCHAR です。+-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | c2 | varchar(50) | YES | | NULL | | | c3 | varchar(50) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
列の並べ替え
列の並べ替えの構文は以下のとおりです:
ALTER TABLE table_name
MODIFY [COLUMN] column_name data_type
{FIRST | BEFORE | AFTER} column_name;
関連パラメータの説明は以下のとおりです:
table_name:並べ替え対象のテーブル名を指定します。column_name:並べ替え対象の列名を指定します。data_type:並べ替え対象のデータ型を指定します。現在のデータ型を指定することも、その列を他のデータ型に変更することもできます。サポートされているデータ型については、後述の列の型の変更を参照してください。FIRST | BEFORE | AFTER:追加する列の位置を指定します。テーブルの先頭(FIRST)、column_nameの前(BEFORE)、またはcolumn_nameの後(AFTER)に追加できます。注意
FIRSTを使用して列をテーブルの先頭に追加する場合は、column_nameを設定する必要はありません。設定するとエラーが発生します。column_name:並べ替え位置に関連する列名を指定します。
データベースにtbl1というテーブルが存在すると仮定します。tbl1のテーブル構造情報は以下のとおりです:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
ここでは、age列をname列の前に並べ替え、age列のデータ型をVARCHARに変更する例を用いて、並べ替えステートメントの使用方法を説明します。
obclient> ALTER TABLE tbl1 MODIFY COLUMN age VARCHAR(50) BEFORE name;
再度DESCRIBE tbl1;コマンドを実行してtbl1テーブルのテーブル構造を確認すると、出力は以下のとおりです。age列がname列の前に配置され、データ型はVARCHARです。
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| age | varchar(50) | YES | | NULL | |
| name | varchar(50) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
列型の変更
OceanBaseデータベースでサポートされている列型の変換は以下のとおりです:
文字列型の列のデータ型変換。
CHAR、VARCHAR、TINYTEXT、TEXT、LONGTEXTを含みます。数値型の列のデータ型変換。
TINYINT、SMALLINT、MEDIUMINT、INT、BIGINTを含みます。バイナリ型のデータ型変換。
BINARY、VARBINARY、BLOB、TINYBLOB、MEDIUMBLOB、LONGBLOBを含みます。厳密なデータ型の精度の変更をサポートします。
VARCHAR、FLOAT、DOUBLE、DECIMALを含みます。厳密なデータ型間の変換。
FLOAT、DOUBLE、DECIMALを含みます。異なるデータ型間の変換。
INT、VARCHAR、DOUBLE、FLOAT、DECIMALを含みます。
OceanBaseデータベースに関連する列型変更ルールについては、列型変更ルールを参照してください。
列型を変更する構文は以下のとおりです:
ALTER TABLE table_name MODIFY [COLUMN] column_name data_type;
関連パラメータの説明は以下のとおりです:
table_name:変更対象の列が存在するテーブル名を指定します。column_name:変更対象の列名を指定します。data_type:変更後のデータ型を指定します。
文字データ型間の変換例
以下のように、test01 テーブルを作成します:
obclient> CREATE TABLE test01 (c1 INT PRIMARY KEY, c2 CHAR(10), c3 CHAR(10));
test01 テーブルを例に、以下の例を組み合わせて、文字データ型列のデータ型を変更し、長さを増やす方法を説明します。
test01 テーブルの
c2列のデータ型を VARCHAR に変更し、最大長を 20 文字に指定します。obclient> ALTER TABLE test01 MODIFY c2 VARCHAR(20);test01 テーブルの
c2列のデータ型を VARCHAR に変更し、最大長を 40 文字に指定します。obclient> ALTER TABLE test01 MODIFY c2 VARCHAR(40);test01 テーブルの
c2列のデータ型を TINYTEXT に変更します。obclient> ALTER TABLE test01 MODIFY c2 TINYTEXT;test01 テーブルの
c2列のデータ型を LONGTEXT に変更します。obclient> ALTER TABLE test01 MODIFY c2 LONGTEXT;test01 テーブルの
c3列の長さを 20 文字に変更します。obclient> ALTER TABLE test01 MODIFY c3 CHAR(20);test01 テーブルの
c3列のデータ型を VARCHAR に変更し、長さを最大 30 文字に指定します。obclient> ALTER TABLE test01 MODIFY c3 VARCHAR(30);
数値データ型間の変換例
整数型
以下のように、test02 テーブルを作成します:
obclient> CREATE TABLE test02 (id INT PRIMARY KEY, name VARCHAR(10),age TINYINT, description VARCHAR(65525));
test02 テーブルを例に、以下の例を組み合わせて、整数型列のデータ型を変更し、長さを拡張する方法を説明します。
test02 テーブルの
age列のデータ型を SMALLINT に変更します。obclient> ALTER TABLE test02 MODIFY age SMALLINT;test02 テーブルの
age列のデータ型を INT に変更します。obclient> ALTER TABLE test02 MODIFY age INT;test02 テーブルの
age列のデータ型を BIGGINT に変更します。obclient> ALTER TABLE test02 MODIFY age BIGGINT;
帯精度データ型
以下のように、test03 テーブルを作成します:
obclient> CREATE TABLE test03(c1 INT, c2 FLOAT(8,2), c3 FLOAT(8,2), UNIQUE(c2, c3));
test03 テーブルを例に、以下の例を組み合わせて、精度を持つデータ型列のデータ型と長さを変更する方法を説明します。
test03 テーブルの
c2列が格納できる数字の桁数を 5 桁に変更します。obclient> ALTER TABLE test03 MODIFY c2 FLOAT(5,2);test03 テーブルの
c2列のデータ型を DOUBLE に変更し、合計 10 桁を格納できるように設定します。そのうち小数部は 4 桁です。obclient> ALTER TABLE test03 MODIFY c2 DOUBLE(10,4);test03 テーブルの
c2列のデータ型を DOUBLE に変更し、小数部を含めた最大桁数を5桁に設定します。obclient> ALTER TABLE test03 MODIFY c2 DOUBLE(5,2);test03 テーブルの
c2列のデータ型を DECIMAL に変更し、整数部と小数部を合わせた最大桁数を20桁に設定します。obclient> ALTER TABLE test03 MODIFY c2 DECIMAL(20, 4);
バイナリデータ型の変換例
以下のように、test04 テーブルを作成します:
obclient> CREATE TABLE test04 (c1 TINYBLOB, c2 BINARY(64));
test04 テーブルを例に、以下の例を組み合わせて、バイナリデータ型の列のデータ型と長さを変更する方法を説明します。
test04 テーブルの
c1列のデータ型を BLOB に変更します。obclient> ALTER TABLE test04 MODIFY c1 BLOB;test04 テーブルの
c1列のデータ型を BINARY に変更し、最大256バイトのデータを格納できるように設定します。obclient> ALTER TABLE test04 MODIFY c1 BINARY(256);test04 テーブルの
c1列のデータ型を VARCHAR に変更し、最大長を256文字に指定します。obclient> ALTER TABLE test04 MODIFY c1 VARCHAR(256);
整数型データと文字型データの変換例
以下のように、test05 テーブルを作成します:
obclient> CREATE TABLE test05 (c1 INT);
以下のコマンドを実行して、test05 テーブルの
c1列のデータ型を VARCHAR に変更し、最大長を64文字に指定します。obclient> ALTER TABLE test05 MODIFY c1 VARCHAR(64);以下のコマンドを実行して、test05 テーブルの
c1列を再び INT 型に変更します。obclient> ALTER TABLE test05 MODIFY c1 INT;
列のデフォルト値の管理
OceanBaseデータベースのMySQLモードでは、列のデフォルト値を変更または削除できます。このセクションでは、それぞれの操作方法について説明します。
列のデフォルト値の変更
デフォルトで設定されていない場合、列のデフォルト値は NULL です。列のデフォルト値を変更する構文は以下のとおりです:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT const_value;
関連パラメータの説明は以下のとおりです:
table_name:デフォルト値を変更する列が含まれるテーブル名を指定します。column_name:デフォルト値を変更する列名を指定します。const_value:変更後の列のデフォルト値を指定します。
データベースにテーブル tbl1 が存在することを仮定します。tbl1 テーブルの構造情報は以下のとおりです:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
ここでは、age 列のデフォルト値を 18 に変更する例を挙げて、列のデフォルト値の変更方法を説明します。
obclient> ALTER TABLE tbl1 ALTER COLUMN age SET DEFAULT 18;
再度 DESCRIBE tbl1; コマンドを実行して tbl1 テーブルの構造を確認すると、出力は以下のとおりで、age 列のデフォルト値は 18 です。
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | NO | | NULL | |
| age | int(11) | YES | | 18 | |
+-------+-------------+------+-----+---------+-------+
列のデフォルト値の削除
列のデフォルト値を削除する構文は以下のとおりです:
ALTER TABLE table_name ALTER COLUMN column_name DROP DEFAULT;
ここで、table_name はデフォルト値を変更する列が含まれるテーブル名を指定し、column_name はデフォルト値を変更する列名を指定します。
データベースにテーブル tbl1 が存在することを仮定します。tbl1 テーブルの構造情報は以下のとおりです:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | NO | | NULL | |
| age | int(11) | YES | | 18 | |
+-------+-------------+------+-----+---------+-------+
ここでは、age 列のデフォルト値を削除する例を挙げて、列のデフォルト値の削除方法を説明します。
obclient> ALTER TABLE tbl1 ALTER COLUMN age DROP DEFAULT;
再度 DESCRIBE tbl1; コマンドを実行して tbl1 テーブルの構造を確認すると、出力は以下のとおりで、age 列のデフォルト値は NULL です。
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
制約の管理
OceanBaseデータベースのMySQLモードでは、テーブルに列制約を追加できます。例えば、既存の列を自動インクリメント列に変更したり、列がNULLを許容するかどうかを設定したり、列の一意性を指定したりすることができます。このセクションでは、それぞれの操作方法について説明します。
制約を管理する構文は以下のとおりです:
ALTER TABLE table_name
MODIFY [COLUMN] column_name data_type
[AUTO_INCREMENT]
[NULL | NOT NULL]
[[PRIMARY] KEY]
[UNIQUE [KEY]];
関連パラメータの説明は以下のとおりです:
table_name:制約を追加する列が存在するテーブル名を指定します。column_name:制約を追加する列名を指定します。data_type:変更対象の列のデータ型を指定します。現在のデータ型を指定することも、その列を他のデータ型に変更することもできます。サポートされているデータ型については、前述の列の型の変更を参照してください。AUTO_INCREMENT:選択した列を自動インクリメント列に設定します。NULL | NOT NULL:選択した列がNULLを許容するかどうか(NULL)、またはNULLを許容しないかどうか(NOT NULL)を設定します。[PRIMARY] KEY:選択した列を主キーに設定します。UNIQUE [KEY]:選択した列の一意性を設定します。
データベースにtbl1というテーブルが存在すると仮定します。tbl1テーブルの構造情報は以下のとおりです:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
id列を主キーに設定しますobclient> ALTER TABLE tbl1 MODIFY COLUMN id INT PRIMARY KEY;id列を自動インクリメント列に設定しますobclient> ALTER TABLE tbl1 MODIFY COLUMN id INT AUTO_INCREMENT;name列をNULLを許容しない列に設定しますobclient> ALTER TABLE tbl1 MODIFY COLUMN name VARCHAR(50) NOT NULL;age列を一意な列に設定しますobclient> ALTER TABLE tbl1 MODIFY COLUMN age INT UNIQUE;再度
DESCRIBE tbl1;コマンドを実行して、tbl1テーブルの構造を確認します+-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(50) | NO | | NULL | | | age | int(11) | YES | UNI | NULL | | +-------+-------------+------+-----+---------+----------------+
自動インクリメント列の値の変更
自動インクリメント列の値を変更する構文は以下のとおりです:
ALTER TABLE table_name [SET] AUTO_INCREMENT = next_value;
ここでは、データベースにtbl1というテーブルが存在することを前提とします。tbl1の自動インクリメント列の値を12に変更する例を挙げて、自動インクリメント列の値を変更する方法を説明します。
obclient> ALTER TABLE tbl1 AUTO_INCREMENT = 12;
変更後、tbl1テーブルの次の自動インクリメント値は12に設定されます。新規レコードを挿入する際、自動インクリメント列(例:c1)は12から増分されます。