У меня есть одна таблица mysql 'alfa', которая будет содержать первичный ключ другой таблицы 'beta' в одном столбце. Но если запись в 'beta' не может быть найдена, я хочу вставить значение в 'beta' и использовать новый ключ в 'alfa'. Могу ли я сделать это в одном запросе?Вставить, если не существует else, просто выберите в mysql
я в настоящее время:
INSERT INTO alfa SET c1=(SELECT id FROM beta WHERE name = 'john');
, который хорошо работает, когда существует «джон» в таблице, но не может иначе. Могу ли я улучшить его, чтобы новое имя было вставлено и выбрано, если оно еще не существует? id is auto_incremented.
Я попытался посмотреть IF, но еще не понял, как использовать IF вне SELECT, возможно ли это?
Я знаю, что могу сделать это в нескольких запросах, но я говорю с удаленной базой данных, поэтому было бы неплохо сделать все это сразу.
Например таблицы могли быть созданы следующим образом:
CREATE TABLE alfa (
c1 int,
PRIMARY KEY (c1)
)
CREATE TABLE beta (
id int auto_increment,
name varchar(255),
PRIMARY KEY (id)
)
так alfa.c1 должны относиться к значениям beta.id.
Короче я хочу сделать:
вставить идентификатор для сортира из беты-таблицы в c1 в альфа, если Джон не существует в бета-версии затем вставить Джон в бета-версию и вставить новое авто увеличивается идентификатор для john в c1 в alfa.
Возможно, вы можете отредактировать свой вопрос и, по крайней мере, разместить структуры таблиц? Неясно, откуда у вас будет дополнительная информация, которая вам нужна в бета-версии? И как, возможно, у alfa есть ключ, если он еще не создан в бета-версии? –
Я попытался добавить дополнительную информацию сейчас. – Zitrax