1

目標

5番目の値から加算します。

問題

データベースに というテーブルがありますmarkets。その中には、5 つの値があります。

+----+------+
| Id | Name |
+----+------+
| 0  | NULL |
+----+------+
| 1  | A    |
+----+------+
| 2  | B    |
+----+------+
| 3  | C    |
+----+------+
| 4  | D    |
+----+------+

Idは主キーで、自動インクリメントされた列であり、その開始はゼロです (デフォルトとして使用するために手動で追加しました)。このテーブルにいくつかの市場を追加すると、MySQL は問題の市場を0asで追加するようです —テーブルのロジックを継続するためにasIdを設定したいと思います。だから私は尋ねます:どうすれば5番目から値を追加できますか?Id5Id

私がすでに試したこと

auto_incrementの値をすでに設定しまし5たが、成功しませんでした。私が使用したクエリは次のとおりです。

ALTER TABLE `markets` AUTO_INCREMENT = 5;

IdMySQL がasを使用して市場を追加しようとしていることをどのように知ることができ0ますか?

私のアプリケーションは、例外をスローしている C# を使用しています。

キー「PRIMARY」のエントリ「0」が重複しています

4

3 に答える 3

2

INSERTステートメントでは、auto_incrementフィールドをステートメントから除外します。これにより、MySQL がインクリメントし、自動的に追加されます。

于 2013-09-04T15:12:09.160 に答える
0

5番目のIDから値を追加するにはどうすればよいですか

ちょうど試して:; -

INSERT INTO markets(Name) VALUES('E');

つまり、auto_incrementデータの挿入中にフィールドを使用しないでください。MySQL はあなたのためにそれを行うのに十分スマートです ;)

于 2013-09-04T15:14:34.830 に答える
0

テーブルにはすでに 4 つの値があるので、次の行を挿入するだけです。次の値として自動的に 5 が使用されます。

auto_increment を使用している場合、挿入コマンドでその列を指定する必要はありません。

INSERT INTO markets(Name) VALUES('E');

auto_increment 値を変更する場合は、次のステートメントを使用できます

ALTER TABLE market AUTO_INCREMENT = 5;
于 2013-09-04T16:24:05.803 に答える