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 と指定するとともに、この列が空であってはならないという制約を設定します。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が存在し、そのテーブル構造情報は以下のとおりです:
+-------+--------------+------+------+---------+-------+
| 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列のデータ型をBIGINTに変更します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桁に変更します。そのうち小数部は2桁ですobclient> ALTER TABLE test03 MODIFY c2 DOUBLE(5,2);test03テーブルの
c2列のデータ型をDECIMALに変更し、合計20桁を格納できるように設定します。そのうち小数部は4桁です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から増加します。