2010-08-25 2 views
2

Я нашел функцию mysql_insert_id для получения последнего автоматически сгенерированного идентификатора.Как вставить новый автоматический приращение ID

Должен ли я использовать mysql_insert_id +1 для добавления нового идентификатора или есть вызов для добавления нового уникального идентификатора?

ответ

4

Использование NULL для ID:

INSERT INTO `database`.`table` (`id`, `user`, `result`) VALUES (NULL, 'Alice', 'green')"); 

ИЛИ не указав идентификатор на всех:

INSERT INTO `database`.`table` (`user`, `result`) VALUES ('Alice', 'green')"); 

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

+0

И менее запутанным - я бы ожидал, что первый пример вызовет ошибку, так как вы пытаетесь вставить NULL в (предположительно) не-NULL-столбец. Или mySQL не различает неопределенные и явные значения NULL? – TMN

+0

NULL допустим здесь, когда вы используете id в качестве первичного ключа. – Chris

+0

ОК - это были мои SQL-заявления, которые были глупыми :) – Steve

3

Если для вашего поля id установлено значение auto increment, вам не нужно добавлять идентификатор вообще. Он будет увеличиваться и добавляться автоматически.

0

AUTO_INCREMENT в MySQL делает именно то, на что это похоже. Когда вы вставляете новую запись, она автоматически генерирует новый идентификатор для вас. Вам не нужен отдельный звонок.

0

Вставьте новую запись и установите столбец автоинкремента в NULL или просто опустите его полностью (что неявно устанавливает его в NULL - он имеет тот же результат). Столбец будет установлен на следующее значение автоинкремента вместо NULL.

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