mysql に関する質問です。auto_increment でつくられる数の基準となる数を変更したいのですが、可能なのでしょうか?

やりたいことは、例えば,1~100まで、データをいれて、auto_increment は、101 から始まる状態で、91~100までを削除して91から auto_increment が始まるようにしたいのです。可能なのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/03/13 15:28:34
  • 終了:2010/03/13 17:25:34

ベストアンサー

id:GreenStar No.1

GreenStar回答回数192ベストアンサー獲得回数462010/03/13 15:49:35

ポイント49pt

テストコードを書いてみた! ALTER TABLE を抜いた場合と入れた場合で比較してみて!!

CREATE TEMPORARY TABLE a (k INT NOT NULL AUTO_INCREMENT PRIMARY KEY, d INT);
INSERT INTO a(d)VALUES(1),(2),(3),(4),(5);
DELETE FROM a WHERE k = 5;
ALTER TABLE a AUTO_INCREMENT=5;
INSERT INTO a(d)VALUES(11),(12),(13),(14),(15);
SELECT * FROM a;

URL必須だけど! 今回はあんまり関係ない!! お暇なら見てよね!

http://dev.mysql.com/doc/refman/4.1/ja/alter-table.html

http://dev.mysql.com/doc/refman//5.1/ja/alter-table.html

id:kaiketsu

テストコード書いてくれるとありがたいです。バージョンはいろんな場合があるので、テストコードがあると確実に確認できていいです。

2010/03/13 17:25:09

その他の回答(2件)

id:GreenStar No.1

GreenStar回答回数192ベストアンサー獲得回数462010/03/13 15:49:35ここでベストアンサー

ポイント49pt

テストコードを書いてみた! ALTER TABLE を抜いた場合と入れた場合で比較してみて!!

CREATE TEMPORARY TABLE a (k INT NOT NULL AUTO_INCREMENT PRIMARY KEY, d INT);
INSERT INTO a(d)VALUES(1),(2),(3),(4),(5);
DELETE FROM a WHERE k = 5;
ALTER TABLE a AUTO_INCREMENT=5;
INSERT INTO a(d)VALUES(11),(12),(13),(14),(15);
SELECT * FROM a;

URL必須だけど! 今回はあんまり関係ない!! お暇なら見てよね!

http://dev.mysql.com/doc/refman/4.1/ja/alter-table.html

http://dev.mysql.com/doc/refman//5.1/ja/alter-table.html

id:kaiketsu

テストコード書いてくれるとありがたいです。バージョンはいろんな場合があるので、テストコードがあると確実に確認できていいです。

2010/03/13 17:25:09
id:chuken_kenkou No.2

chuken_kenkou回答回数722ベストアンサー獲得回数542010/03/13 16:47:13

ポイント5pt

MySQLの質問をする場合は、バージョンを明記するようにしてください。

MySQL 5.1では、ALTER TABLEで再設定可能です。

ALTER TABLE 表名 AUTO_INCREMENT=91

お使いのバージョンでも使用かのうか、確認してみてください。


MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.1.2 ALTER TABLE 構文

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.1.8 CREATE TABLE 構文

id:kaiketsu

4でもできるみたいです。マニュアルには書いていないようです。

2010/03/13 17:24:24
id:snufkinski No.3

Snufkinski回答回数41ベストアンサー獲得回数112010/03/13 16:59:57

ポイント26pt

mysqlのコマンドからでしたら以下のように設定できます。


$ mysql -u [ユーザ名] -p

mysql> use [データベース名];
mysql> alter table [テーブル名] auto_increment=[設定値];
mysql> quit

http://dev.mysql.com/doc/refman/4.1/ja/alter-table.html

id:kaiketsu

書いていないけど、4でもできるみたいですね。

2010/03/13 17:22:41
  • id:chuken_kenkou
    INSERT文のVALUESで複数行を格納する場合、LAST_INSERT_ID()で得られる値がバージョンにより違ったと記憶しているので念のため。

    また、ALTER TABLEで変更が有効になっているかどうかは、実際にINSERTしてみるだけでなく、SHOW CREATE TABLEで確認できます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません