2013-06-06 3 views
-1

Я использую MySQL, и я знаю, в PHP/MySQL можно использовать this (mysqli_insert_id)Получить вставки идентификатор текущего запроса INSERT

Но можно сделать что-то вроде этого?

INSERT INTO table VALUES (value1, value2, THIS_INSERT_ID) 

Это нечто большее, чем это, но, надеюсь, это объясняет это.

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

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

+0

Вам нужно будет поместить идентификатор возврата в переменную ($ id), затем сделать таблицу UPDATE SET col3 = $ id WHERE id = $ id – StaticVoid

ответ

2

№. Идентификатор вставки доступен только после того, как сама строка была вставлена.

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

+0

Чтобы ответить на ваш вопрос. Я создаю страницу входа, где пользователь может создать гостевую учетную запись. Поскольку имя пользователя должно быть уникальным, мне нравится вставлять его с «guest + ID». Если это уже существует (если пользователь вручную вводит guestXXXX), я бы добавил что-то к нему. В этом случае мне нужно создать случайную строку для имени пользователя и вставки. Затем извлеките последнюю вставку и попробуйте имя гостя. Если это не удается, попробуйте добавить и повторить. – Madmenyo

0

Если я правильно понимаю, это невозможно. Вы не знаете вставленный идентификатор, пока вы, ну, INSERT.

0

Это не то, как вы хотите это сделать - и это тоже не имеет особого смысла.

В вашем столе добавить первичный ключ, id и AUTO_INCREMENT. Затем вы можете запросить этот столбец id.

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