Ответ 1
-
Вы получаете его через
SELECT LAST_INSERT_ID();
или через вашу библиотеку фреймворка /MySQL (на любом языке) callmysql_insert_id()
. -
Это не сработает. Там вам нужно запросить идентификаторы после вставки.
Я вставляю несколько слов в таблицу с двумя столбцами с помощью этой команды:
INSERT IGNORE INTO terms (term) VALUES ('word1'), ('word2'), ('word3');
Как я могу получить идентификатор (первичный ключ) строки, в которую вставлено каждое слово. Я имею в виду возвращение значения типа "55,56,57" после выполнения INSERT
. Имеет ли MySQL такой ответ?
Термин столбца UNIQUE
. Если термин уже существует, MySQL не будет его вставлять. Можно ли вернуть ссылку для этого дублирования (т.е. Идентификатор строки, в которой существует этот термин)? Ответ вроде "55, 12, 56".
Вы получаете его через SELECT LAST_INSERT_ID();
или через вашу библиотеку фреймворка /MySQL (на любом языке) call mysql_insert_id()
.
Это не сработает. Там вам нужно запросить идентификаторы после вставки.
Почему не просто:
SELECT ID
FROM terms
WHERE term IN ('word1', 'word2', 'word3')
Во-первых, чтобы получить только что вставленный идентификатор, вы можете сделать что-то вроде:
SELECT LAST_INSERT_ID() ;
Уход, это будет работать только после вашего последнего запроса INSERT
, и он вернет только первый идентификатор, если у вас есть множественная вставка!
Затем, с опцией IGNORE
, я не думаю, что можно получить строки, которые не были вставлены. Когда вы создаете INSERT IGNORE
, вы просто указываете MySQL игнорировать строки, которые должны были бы создать повторяющуюся запись.
Если вы не поместите эту опцию, INSERT
будет остановлен, и у вас будет линия, связанная с дублированием.