2010-12-30 20 views
10

私はMySQL Query Browserを使用して新しいテーブルを作成していましたが、自動インクリメントカラムの下に目盛があることに気付きました。それはどのように機能するのですか?MySQL自動インクリメントはどのように機能しますか?

データベースにプログラムを追加するときに、番号を追加するだけで、データベースは自動的にその番号をインクリメントしますか?

新しいユーザーが自分のサイトに登録するたびに、カスタマーID(整数のみ)を自動増分したいので、試してランダムに固有の番号を生成する必要はありません。

これは簡単に行うことができますか?

ありがとうございました!

+2

参考:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html –

+0

ありがとう! - だから、本当に何もする必要はありません。新しい行が追加されるたびに番号が追加されます。 :) –

+0

私はここの周りの初心者のためにこのコミュニティを作るだろう。 – t0mgs

答えて

15

プログラムでデータベースを追加する場合は、番号を追加するだけで、データベースは自動的にその数値をインクリメントしますか?

はい、それはauto_incrementの方法です。

  • 値は、各新しい行に増分する

  • 値が一意である、重複行が削除された場合、その行のauto_increment列はなくなり

  • 不可能です再割り当てされる。

  • 同じデータベース接続

mySQL Reference

+0

ありがとう! - 9分で受け入れます。 :) –

+1

4時間、59分遅れていますが、私はまだ笑を受け入れています。 :P –

+3

'AUTO_INCREMENT'の値は必ずしも一意ではありません:http://sqlfiddle.com/#!2/85e93/1 – MichaelRushton

0
に、最後に挿入された行の auto_increment値は、MySQL関数 LAST_INSERT_ID()を使用してアクセスすることができるが、それ 右挿入クエリの後に呼び出されなければなりません

はい、それはAUTO_INCREMENTの正確な目的です。それは、そのテーブルの現在のインクリメント値が何であるかを調べ、その値に格納されている新しい行に対して1を自動的に格納します。 INSERTステートメントからそのフィールドを省略することができ、MySQLは新しい行が入ったときにそれを処理し、各行に固有のIDを与えます。

1

あなたが自動インクリメントを有効にすると、新しいレコードが作成されるたびにIDが常に自動的に追加されます。..例:

、あなたのテーブルにIDが1の1つのレコードを持っていて、新しいレコード、IDを追加した場合自動的に2になります。

4

1さらに、 あなた自身の値(つまりランダムな値)を挿入することもできます。

1

はい。 Auto_Increment列はスズのように機能します。ヒント

  • INSERT - INGのは、NULL使用するか、最後に生成された値を取得するために、列

  • 利用LAST_INSERT_ID()(またはAPI同等物)を省略します。

  • セキュリティとビジネスロジックの理由から、通常、顧客識別子に直接キー値を使用しない方が良いでしょう。代わりにハッシュ/ランダム化サロゲート顧客キーの使用を検討してください。

のTa

関連する問題