2013-09-21 5 views
-1

У меня есть id coloumn, который является целым и автоматически увеличивающимся типом.как поддерживать непрерывное число строк число строк в mysql

Проблема в том, когда я удаляю строку непрерывность разрывов числа.

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

НАПРИМЕР, если я удалить строку с id=2, то я выход в ид будет

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

, но я хочу, чтобы это было как:

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

Как это сделать ??

+6

Ну, первый вопрос: зачем он нужен? Вы хотите, чтобы это выглядело хорошо, или у вас есть сильная деловая причина? Типы целых чисел MySQL могут содержать более чем достаточно значений: http://dev.mysql.com/doc/refman/5.0/en/integer-types.html – biziclop

+2

Является ли идентификатор вашим основным ключом? Если это так, не делайте этого. – hims056

+0

если не первичный ключ, то как ?? и почему бы нет ? @ hims056 – Aayush

ответ

2

Чтобы получить ответ на свой вопрос, вот как исправить эти пробелы в последовательных числовых полях: Fixing gaps in mysql table row id after we delete some of them

Но давайте быть осторожным здесь на мгновение.

Предположим, что ваш основной ключ - id. Идентификаторы обычно являются точкой отсчета для объекта, потому что автогенерируемые идентификаторы уникальны. Назовите это конвенцией.

Это означает, что если ANY часть вашего кода зависит от столбца id, ваше приложение будет работать.

Если у вас NEED, для этого необходимо использовать другое поле в качестве основной ссылки. Возможно, уникальное поле name или что-то подобное.

Если идентификатор НЕ является вашим основным ключом, то, вероятно, вы должны были выбрать другое имя для начала. Во всяком случае, в этом случае шансы на то, что вы нарушаете что-либо, намного меньше.

Обратите внимание, что я сказал меньше, но не ноль. Мы не знаем ваше приложение, поэтому возможно, что ваш код использует id для чего-то важного, и это будет означать для вас неприятность.

+0

Взять как не первичное ключевое поле, Предположим, что это поле чисел вместо id, в чем же разница? – Aayush

+0

@Aayush Я отредактировал свой ответ. – victorantunes

+0

Это то, что я прошу, если мое имя поля 'number', и теперь это не первично, то как я могу заставить его работать таким образом? – Aayush

Смежные вопросы