レコードを持つテーブルがありますが、これらのレコードは削除されています。主キーはデータベーステーブル上で自動的にインクリメントされます。テーブルからすべての行が削除された場合、自動的に増分された主キーの次の値を知る方法は?
テーブルに新しい行を挿入する前に、この主キーの次の値を知る方法はありますか?可能でない場合は、行を挿入した後に生成された主キーの値をすぐに取得する方法がありますか?
レコードを持つテーブルがありますが、これらのレコードは削除されています。主キーはデータベーステーブル上で自動的にインクリメントされます。テーブルからすべての行が削除された場合、自動的に増分された主キーの次の値を知る方法は?
テーブルに新しい行を挿入する前に、この主キーの次の値を知る方法はありますか?可能でない場合は、行を挿入した後に生成された主キーの値をすぐに取得する方法がありますか?
あなたが行を挿入し、その後last_insert_id
で見ることができる:
insert into ....;
select last_insert_id();
あなたにINSERTを使用したauto_increment
値を与えるだろう。
show table status like 'your_table_name'
の出力を調べると、次に使用される次の値を示すAuto_increment値が表示されます。
あなただけのMySQLのプロンプトで座っている場合は、次のAUTO_INCREMENTは次のIDがどうなるかである
) ENGINE=MyISAM AUTO_INCREMENT=876159 DEFAULT CHARSET=latin1 |
:下部にある
次のように表示されます。
つ以上の変異体 -
SELECT `AUTO_INCREMENT` FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = '<table_schema>' AND TABLE_NAME = '<table_name>';
私はPHPでLAST_INSERT_ID()メソッドを呼び出して問題を抱えています。私は$ image_id = LAST_INSERT_ID()を選択しようとしました。しかし、何も返さない場合は、$ image_id = LAST_INSERT_ID();を試してみました。それも何も返しません!だからPHPでそれを呼び出す方法は? –
@Andy: 'last_insert_id()'をMySQL内で実行する必要がある場合は、mysql_queryを使用して、INSERTとSELECTの両方に同じ接続を使用していることを確認してください。 –