У меня есть таблица MySql, которая создается следующим образом;
CREATE TABLE test_contacts
(
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(16) NOT NULL,
databit int NOT NULL
);
CREATE UNIQUE INDEX test_contacts_name_uindex ON test_contacts (name);
Когда я хочу получить данные, я делаю SELECT * FROM test_contacts WHERE name = '{name}';
В моем текущем Java-приложении я делаю следующее: (псевдокод)
Object result = SELECT * FROM test_contacts WHERE name = '{name}';
if (result == null) {
INSERT INTO test_contacts (`name`, `databit`) VALUES ('{name}', 2);
result = SELECT * FROM test_contacts WHERE name = '{name}';
}
Есть ли способ сжать эти 3 вызова базы данных в 1 оператор, который всегда возвращает строку для указанного имени? (Мне нужен id
, который вставлен)