-1

整数型で自動インクリメント型の ID 列があります。

問題は、行を削除するたびに、番号の連続性が壊れることです。

+----------------------+----+    
| name                 | id |    
+----------------------+----+    
| mashable             |  1 |    
| Behance              |  2 |    
| Techcrunch           |  3 |    
| flipkart             |  4 |   
+----------------------+----+

たとえば、行をid=2で削除すると、ID の出力は次のようになります。

+----------------------+----+
| name                 | id |
+----------------------+----+
| mashable             |  1 |
| Techcrunch           |  3 |
| flipkart             |  4 |
+----------------------+----+

しかし、私はそれが次のようになりたい:

+----------------------+----+
| name                 | id |
+----------------------+----+
| mashable             |  1 |
| Techcrunch           |  2 |
| flipkart             |  3 |
+----------------------+----+

どうやってするの ??

4

1 に答える 1

2

あなたの質問に直接答えるために、連続する数値フィールドのこれらのギャップを修正する方法は次のとおりです。

しかし、ここでちょっと気をつけてみましょう。

idが主キーであるとしましょう。自動生成された ID は一意であるため、通常、ID はオブジェクトへの参照ポイントになります。それをコンベンションと呼んでください。

つまり、コードの一部が列に依存している場合アプリケーションidは壊れます。

これを行う必要がある場合は、他のフィールドを主な参照として使用してください。おそらく、独自のnameフィールドまたは類似の何か。

ID が主キーでない場合は、最初から別の名前を選択する必要があります。とにかく、この場合、何かを壊す可能性ははるかに低くなります。

小さいと言ったが、ゼロではないことに注意してください。私たちはあなたのアプリケーションを知らないので、あなたのコードがid何か重要なことに使用されている可能性があり、それはあなたにとって問題を意味します.

于 2013-09-21T06:41:54.887 に答える