powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Inser ignore возвращение id
12 сообщений из 12, страница 1 из 1
Inser ignore возвращение id
    #38351413
feddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вставляю значение через INSERT IGNORE и получаю средствами DBI(perl) ID вставленного значения $db->{mysql_insertid};
Если INSERT был то всё нормально, а вот если сработал IGNORE, то ID не возвращается. Каким бы запросом можно было-бы делать вставку, но в случае сработанного IGNORE вернуть id уже существующей записи? Одним запросом хочу это сделать.
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351521
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. функцию LAST_INSERT_ID() .
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351554
feddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftСм. функцию LAST_INSERT_ID() .
Хорошо, а как объеденить в один запрос INSERT с данной функцией
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351582
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feddd,

у этой функции можно указать параметр
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351662
feddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftfeddd,

у этой функции можно указать параметр
Кст данная функция не подходит, т.к. когда при INSERT срабатывает IGNORE то данная функция возвращает результат последней реальной вставки данных, а не её попытки. А мне нужно в случае срабатывания IGNORE вернуть id уже имеющейся записи.
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351733
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и id=LAST_INSERT_ID(id) не помогает?
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351796
feddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftи id=LAST_INSERT_ID(id) не помогает?
Покажите вариант полного запроса, я не могу понять, что вы имеете ввиду.

Код: sql
1.
2.
INSERT IGNORE INTO folder(parent_id, name) VALUES(1, 'folder1');
SELECT LAST_INSERT_ID();


Вернёт 0 при условии, что запись (1, 'folder1') уже существовала. А мне нужно в случае существования вернуть её ID, сейчас это делается двумя запросами, то есть проверяю если ID не вернулся, то делаю SELECT, вопрос в том, как это одним запросом сделать?
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351807
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
INSERT INTO folder(parent_id, name) VALUES(1, 'folder1') ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id)

Код: sql
1.
SELECT LAST_INSERT_ID()

Сам не тестил, но, по идее, работать должно.
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351864
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу врубиться, вам же известен id. Сейчас он 1.
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351865
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
debloggerНе могу врубиться, вам же известен id. Сейчас он 1.Это другое поле.
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38351895
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно. Если значение примари заранее неизвестно значит это новая запись, иначе - старая.


авторЕсли INSERT был то всё нормально, а вот если сработал IGNORE, то ID не возвращается.

Если сработал игноре то значит в валуях был дубликат ключа. Следовательно его можно посмотреть вычислив по признаку отсутствия того самого last_insert'а, или я в принцип не врубаюсь?
...
Рейтинг: 0 / 0
Inser ignore возвращение id
    #38352280
feddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft
Код: sql
1.
INSERT INTO folder(parent_id, name) VALUES(1, 'folder1') ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id)

Код: sql
1.
SELECT LAST_INSERT_ID()

Сам не тестил, но, по идее, работать должно.
Да. Так сработало, благодарю.

deblogger, нет суть вобще в другом))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Inser ignore возвращение id
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]