Soru: Ben müşterileri ile bir veritabanı kuruyorum. Ben veritabanında bilgi eklemek için "insert" deyimini kullanmak olduğunu biliyorum, ama nasıl ben yine aynı müşteri bilgileri girmeyin emin olabilirim?
Cevap: EXISTS durumunu kullanarak yinelenen bilgi takmayın emin olabilirsiniz.
Eğer client_id bir birincil anahtar ile müşterilerine adında bir tablo vardı Örneğin, aşağıdaki ifadeyi kullanabilirsiniz:
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);
Bu ifade bir subselect ile birden fazla kayıt ekler.
Eğer tek bir kayıt eklemek istedim, aşağıdaki ifadeyi kullanabilirsiniz:
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);
Dual tablo kullanımı, değerler şu anda bir tabloda depolanan olmasa bile, bir select deyimi içinde değerleri girmek için izin verir.
dan http://www.techonthenet.com/sql/insert.php