Что происходит, когда механизм DB исчерпывает числа для использования для первичных ключей?

Я нашел решение для своего вопроса, которым я делюсь для дальнейшего использования. Просто замените эту строку alert("From Copy"); на эту

var table = $('#tbMenu').DataTable();
table.button('.buttons-copy').trigger();        

Спасибо.

5
задан Community 23 May 2017 в 12:08
поделиться

10 ответов

Я думаю точно, что происходит, будет зависеть, на котором механизме базы данных Вы используете (могут даже быть различия между INNODB и MyISAM в MySQL). Что бы ни случилось, это не будет симпатичным.

Необходимо было бы просто изменить тип столбца на большее целое число.

4
ответ дан 18 December 2019 в 07:57
поделиться

Вы заканчиваете с 3 +, Время простоя Часа, как Slashdot сделало на их Функции Комментариев.

9
ответ дан 18 December 2019 в 07:57
поделиться

Для MySQL это документируется что:

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

2
ответ дан 18 December 2019 в 07:57
поделиться

В Пост-ГРЭС "последовательный" тип эквивалентен созданию ПОСЛЕДОВАТЕЛЬНОСТИ с опцией NO CYCLE и установке значения по умолчанию поля к nextval. Исчерпание такой последовательности производит ошибку:

http://www.postgresql.org/docs/8.3/interactive/sql-createsequence.html

1
ответ дан 18 December 2019 в 07:57
поделиться

Большинство систем баз данных имеет числовой тип данных, который может быть более широким, чем 32 бита. При предупреждении больше, чем 2^32 записи, необходимо использовать соответствующую ключевую ширину.

2
ответ дан 18 December 2019 в 07:57
поделиться

Да это возможно: если Вы только допускаете 2 числа цифры, у Вас могут только быть идентификаторы до 99 и так далее. Вставки перестали бы работать, после того как предел был достигнут. Это - вопрос здравого смысла выбрать соответствующий размер.

1
ответ дан 18 December 2019 в 07:57
поделиться

Это зависит от Вашей базы данных, я верю в MS SqlServer, Вы просто не можете вставить новые строки, пока Вы не решаете проблему. В прошлый раз, когда я встретился с ним, мы решили проблему путем пересева столбца идентификационных данных к 1. Это - очевидно, не универсальная фиксация, но она согласилась с нашей ситуацией.

1
ответ дан 18 December 2019 в 07:57
поделиться

Oracle не поддерживает столбцы ID автопостепенного увеличения, и общепринятая практика состоит в том, чтобы использовать генератор последовательности. Последовательность генерирует целые числа до 28 цифр, поэтому если у Вас заканчиваются они затем... Я предполагаю, что у Вас есть довольно большая таблица. Но поведение затем зависело бы от конфигурации генератора последовательности - или ошибка, или это циклически повторится назад к значению запуска, и Вы получили бы ограничительное нарушение PK на следующей вставке.

0
ответ дан 18 December 2019 в 07:57
поделиться

Я попробовал это в SQL 2000 некоторое время назад. После Целого числа. MaxValue следующее значение идентификационных данных является Целым числом. MinValue. Это затем продолжает подсчет, как Вы ожидали бы. Пока записи, которые раньше существовали в 1,2,3 и т.д., пошли к тому времени, когда это добирается там, ничего плохо не произойдет. Если это сталкивается с дубликатом (и поле является первичным ключом), затем сбои вставки с ключевым нарушением. Я не попробовал столбец идентификационных данных, который не ограничивается к уникальным значениям все же. Я предположил бы, что это будет довольно дубликатами.

0
ответ дан 18 December 2019 в 07:57
поделиться

Обычно вы получаете сообщение об ошибке. Используйте BIGINT, если вы параноик.

0
ответ дан 18 December 2019 в 07:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: