Название довольно ясно ... Я хочу иметь возможность добавить элемент в базу данных, и если уже есть элемент с соответствующим уникальным столбцом, вернуть идентификатор этого элемента ...
Приведенное ниже выражение настолько близко, насколько я нашел, к решению
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;
Мне удалось получить новый идентификатор (при вставке новой строки) с помощью Statement.generatedKeys ().будет ли "id" появляться в Statement.generatedKeys () в случае дублирования?если нет, то как я могу получить его?
ОБНОВЛЕНИЕ : с помощью хранимой процедуры, именно то, что мне нужно:
INSERT INTO applications (path, displayName) VALUES (?, ?)
ON DUPLICATE KEY UPDATE
id = LAST_INSERT_ID(id), path = ?, displayName = ?;
SELECT LAST_INSERT_ID() INTO ?;
Это работает на другом проекте яя работаю над тем, что использует MySQL Connector в .NET, но, к сожалению, хранимая процедура не подходит для меня в этом проекте Java.
Есть ли какой-либо другой способ отправить 2 оператора в одной сетевой поездке?