2009-06-20 4 views
1

私は、自動インクリメントとその他のフィールドであるフィールドIDを持つmysqlの問題があります。 idフィールドはヌル値を入力する際に​​自動インクリメントされるべきではなく、値を入力している間にオートインクリメントされるべきであり、ヌル値を与えずに同じ行に値を挿入します。私はmysqlに、自動インクリメントやその他のフィールドのフィールドIDを持っているという問題があります。

+1

これは意味をなさない。 null行を作成してデータを入力しようとしていますか? – Eric

答えて

1

idフィールドの値をデータベースで生成するのではなく、自分のコードで自分で生成する必要があるようです。

データベースにIDフィールドを作成すると、データベースによってフィールドが自動的に作成されます。一般に、これは、レコードが保存されるときに、ヌルフィールドが存在するかどうかにかかわらず発生します。これ以上の制御が必要な場合は、id値を自分で生成する必要があります。

次のID番号を知る必要がある場合は、SELECT MAX(id_field)で取得できます。

+0

MAX(id)を使用する場合は、行を削除するとIDが再利用される可能性があることに注意してください。 –

0

ロバート・ハーベイの回答が問題に取り組んでいますが、私はまた、あなたが貯蓄しているものを見て、別のアプローチがあるかどうかを確認することをお勧めします。おそらくnull値は別のテーブルに保存する必要がありますか?おそらく自動インクリメントとして持っている列は主キーではありません。

これは方向ではないかもしれませんが、この場合は、元に戻って再検討する価値があります。

関連する問題