Какой стандартный способ определения номера для первичного ключа? - PullRequest
4 голосов
/ 28 октября 2008

Я планирую сделать очень простую программу, используя php и mySQL. Главная страница примет информацию и создаст новую строку в базе данных с этой информацией. Тем не менее, мне нужен номер для ввода первичного ключа. К сожалению, я понятия не имею о том, как определить, какой умбер использовать. Предпочтительно, если я удалю строку, ключ этой строки никогда не будет использоваться повторно.

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

Ответы [ 7 ]

19 голосов
/ 28 октября 2008

В MySQL это стандартное решение .

CREATE TABLE animals (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id)
 );
6 голосов
/ 28 октября 2008

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

Скажем, у вас есть таблица таблицы = (a, b, c), где a - первичный ключ, тогда оператор вставки будет

вставить в таблицу (b, c) значения ('bbb', 'ccc')

и первичный ключ будет автоматически вставлен в базу данных.

4 голосов
/ 28 октября 2008

AUTOINCREMENT это то, что вы хотите. Пока вы не измените настройки таблицы, AUTOINCREMENT будет продолжать расти.

1 голос
/ 28 октября 2008

AUTO_INCREMENT - общий выбор, он устанавливает число, начиная с 1, до каждой новой строки, которую вы вставляете. Вся работа по выяснению того, какое число использовать, выполняется БД, вы просто спрашиваете его обратно после вставки, если вам нужно (в php вы получаете его, вызывая mysql_last_insertid, я думаю)

1 голос
/ 28 октября 2008

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

Я полагаю, что базовое целое число идентификаторов наберет около 2 миллиардов строк (это правильно для mySQL?), Прежде чем закончится свободное место, поэтому вам не придется беспокоиться о том, чтобы попасть в верхнюю часть.

1 голос
/ 28 октября 2008

AUTOINCREMENT - это стандартный способ автоматического создания уникального ключа. Он начнется с 1 (или 0, я не помню, и это не имеет значения), а затем будет увеличиваться с каждой новой записью, добавленной в таблицу. Если запись удалена, ее ключ будет не использоваться повторно.

0 голосов
/ 29 октября 2008

Для чего-то простого автоматического прироста лучше. Для чего-то более сложного, которое в конечном итоге будет содержать много записей, я генерирую GUID и вставляю его в качестве ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...