У меня есть простая таблица, как этотВставка и выберите идентификатор уникального элемента в одном запросе
CREATE TABLE authid(
id INT NOT NULL AUTO_INCREMENT,
authid VARCHAR(128) NOT NULL UNIQUE,
PRIMARY KEY(id)
);
Теперь, если я ввожу значение с
INSERT INTO authid(authid) VALUES('test');
Это будет прекрасно работать и возвращать вставил id в первый раз, но если я сделаю это снова, когда authid уже существует (обратите внимание, что у нас есть authid, отмеченный как UNIQUE), он вернет ошибку.
Есть ли способ достичь этого в одном выражении SQL: Вставьте его, получите идентификатор, и если он уже существует, все равно получите идентификатор.
Я немного смущен. Вы спрашиваете, как получить автоинкрементный идентификатор недавно вставленной записи? Или вы спрашиваете о чем-то с уникальным ограничением? –
Я хочу вставить запись в таблицу, если запись уже существует, получить свой идентификатор, если нет, создать его и получить его id. –
Эта проблема была избита здесь ... ЕСЛИ СУЩЕСТВУЕТСЯ в хранимой процедуре - лучший способ (как я помню). – Hogan