У меня есть следующая таблица карты с уникальным ключом на столбце Имя:Получить последний идентификатор из вновь вставленного элемента, или существующий
id | name
1 aaa
2 bbb
3 ccc
Я хочу, чтобы получить вновь созданный идентификатор, если я вставить новое значение в этой таблице, как это:
INSERT IGNORE INTO map VALUES(null, 'ddd');
Я знаю, что могу сделать это с помощью getLastId()
функции. Но я также хочу, чтобы получить идентификатор, если имя уже существует, и getLastId()
функция возвращает 0 в таком случае:
INSERT IGNORE INTO map VALUES(null, 'ccc');
Возможно ли это сделать с одним SQL, и без проверки, если запись существует, и т.д.?
'getLastId()' не даст вам значение «идентификатор "даже на вставке. Идентификатор в вашем случае - «имя». И у вас уже есть «имя». Это более концептуальная вещь, на которую я бы сказал. – hakre