2012-02-08 6 views
5

INSERT INTOクエリを実行せずにプライマリキーの次の自動インクリメントを調べることはできますか?いくつかの行は削除されているため、PK上のSELECT MAXクエリに追加するだけでは簡単ではありません。どうもありがとう。次に使用するauto_incrementを見つけることはできますか?

+0

あなたがそれを知りたいでしょうなぜ? – Mchl

+0

はい、http://stackoverflow.com/questions/933565/get-auto-increment-value-with-mysql-query –

+0

ありがとうございます。私は値を見つけることができるかどうかを知りたいだけのことに興味がありました。 – user114671

答えて

7

あなたが本当に例えば、Auto_incrementフィールドの横にSHOW TABLE STATUS戻りを試す次のAUTO_INCREMENT値を知りたい場合は、次の

SHOW TABLE STATUS WHERE name = your_table_name; 

または

SELECT Auto_increment 
FROM information_schema.tables 
WHERE table_schema = DATABASE() AND table_name = your_table_name 
+0

'from'を使って最初の例を使用する場合は、テーブル名ではなくデータベース名を指定する必要があります。' WHERE name = your_table_name 'を追加すると、そのテーブルだけを取得できます。 FROM database_name'と答えてください。答えは –

+0

@ aron.dubyのように 'WHERE'です。 –

0

次のことを試してみてください。

SELECT Auto_increment 
    FROM information_schema.tables 
    WHERE table_name= 'tableName' 
    AND table_schema = DATABASE(); 
2

することができます

を実行して値を取得します。
SHOW TABLE STATUS WHERE Name = nameOfTableHere 

、その後、列「AUTO_INCREMENT」を検索した結果から

0

これも可能です:

(SELECT (SELECT your_primary_key FROM Your_Table ORDER BY your_primary_key DESC LIMIT 1)+1); 
+0

回答がすでに受け入れられている質問に答えようとしている場合、回答してから2年後に正しい回答をしてください。行が削除されたという事実を考慮していないので、これは間違っています。つまり、私は最初の投稿で述べたように、SELECT MAXに行を追加できません。 – user114671

+0

申し訳ありません - 私は有罪です。私はLIMITを忘れた。動作中のソリューションに更新されました。 SELECT Auto_increment ...私の状況では動作しませんでした。そういうわけで私は別の解決法を追加しました。 – Valter

関連する問題