Вопрос: я настраиваю базу данных с клиентами. Я знаю, что вы используете оператор "insert" для вставки информации в базу данных, но как мне убедиться, что я больше не ввожу ту же информацию о клиенте?
Ответ: Вы можете убедиться, что не вставляете дублирующую информацию, используя условие EXISTS.
Например, если у вас есть таблица с именем клиентов с первичным ключом client_id, вы можете использовать следующий оператор:
INSERT INTO clients
(client_id, client_name, client_type)
SELECT supplier_id, supplier_name, 'advertising'
FROM suppliers
WHERE not exists (select * from clients
where clients.client_id = suppliers.supplier_id);
Этот оператор вставляет несколько записей с подвыбором.
Если вы хотите вставить одну запись, вы можете использовать следующий оператор:
INSERT INTO clients
(client_id, client_name, client_type)
SELECT 10345, 'IBM', 'advertising'
FROM dual
WHERE not exists (select * from clients
where clients.client_id = 10345);
Использование двойной таблицы позволяет вводить ваши значения в операторе выбора, даже если эти значения в настоящий момент не хранятся в таблице.
из http://www.techonthenet.com/sql/insert.php