2011-09-13 9 views
0

レコードを持つテーブルがありますが、これらのレコードは削除されています。主キーはデータベーステーブル上で自動的にインクリメントされます。テーブルからすべての行が削除された場合、自動的に増分された主キーの次の値を知る方法は?

テーブルに新しい行を挿入する前に、この主キーの次の値を知る方法はありますか?可能でない場合は、行を挿入した後に生成された主キーの値をすぐに取得する方法がありますか?

答えて

0

あなたが行を挿入し、その後last_insert_idで見ることができる:

insert into ....; 
select last_insert_id(); 

あなたにINSERTを使用したauto_increment値を与えるだろう。

show table status like 'your_table_name'の出力を調べると、次に使用される次の値を示すAuto_increment値が表示されます。

+0

私はPHPでLAST_INSERT_ID()メソッドを呼び出して問題を抱えています。私は$ image_id = LAST_INSERT_ID()を選択しようとしました。しかし、何も返さない場合は、$ image_id = LAST_INSERT_ID();を試してみました。それも何も返しません!だからPHPでそれを呼び出す方法は? –

+0

@Andy: 'last_insert_id()'をMySQL内で実行する必要がある場合は、mysql_queryを使用して、INSERTとSELECTの両方に同じ接続を使用していることを確認してください。 –

1

あなただけのMySQLのプロンプトで座っている場合は、次のAUTO_INCREMENTは次のIDがどうなるかである

) ENGINE=MyISAM AUTO_INCREMENT=876159 DEFAULT CHARSET=latin1 | 

:下部にある

​​

次のように表示されます。

1

つ以上の変異体 -

SELECT `AUTO_INCREMENT` FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = '<table_schema>' AND TABLE_NAME = '<table_name>'; 
関連する問題