2016-04-09 14 views
1

SQL-SUNUCUyerleştirme satır MS KULLANARAK

bilmek istediğim ve eğer bu sorguyu diğer tabloda bulunmuyorsa, bunu yapmazdı. örneğin

5161019329, tablo invetory sadece 1 satır sokulmuştur değildi

INSERT INTO producto VALUES 
('ad-101', '27', 'Nissan','NP300','2016','aer3457','1',(SELECT Id from Inventario WHERE Serie = '5161017293')), 
('ad-102', '27', 'Nissan','NP300','2015','aer5647','1',(SELECT Id from Inventario WHERE Serie = '5161019329')) 

sonraki sorgusu.

Her zaman seçkin parça için ayrı bir sorgu yapabilirim ve daha sonra eklemek veya olmamak için php üzerinde mantığımı yaparım, ancak bu bazen o kadar 100 satır eklenebilir.

sayesinde

+0

Bu sütunda bir yabancı anahtar kısıtlaması kullanın ve sorgunuzun başarılı olup olmadığını görün. – pBuch

cevap

-1

PDO kastettiğin buysa, yaptığınız sorgu sahip satırların miktarını saymak için çağrılabilir bir rowCount() işlevi vardır.

Sen deneyebilirsiniz (soru gerçekten mantıklı gelmedi):

ben çok MySQLi bağlantısını kullanmadıysanız ancak döngü bir $count++ değişkenle sorgu 0'dan başlayan olabilir daha
$query = $handler->query("Your select query"); 

if ($query->rowCount() == 0) { 
    // Insert Query 
} 

Diğer Daha sonra $count değişkeni 0'a eşitse, sorguyu daha sonra mantığa ekleyin.

Eğer cevabın mantıklı olmadığı sorusu için özür dilerim ama soru da yoktu.

+0

Sanırım yanlış anlaşılmış olabilir, ama kötü bir açıklama olabilir ama INSERT sorgusu içinde seçili sorgunun boş olabileceği SELECT alt sorgusu var, ancak sütunun NULL'leri kabul ettiği için ekleme gerçekleşebiliyor. NULL'ları kabul etmek için ona ihtiyacım var. –

0

Seçtiğiniz döndürülen numaranın döndürdüğü sütun, geçersiz bir sütun değilse, mysql, ekini engellemeli ve bir hata atmalıdır.

+0

SQL-server etiketlerini kullandığını söylüyorum, post, sorry. select satır yok verirse bir NULL alır ve –

+0

null ile ekleyeceğim. Sorgunun null döndürülmesi durumunda eklemek istemediğinizi düşündüğüm soruyu anladığımdan emin değilim. – Jeff

+0

evet gerçekten, ama elden önce bu değer bir NULL olabilir, bu yüzden NULLs'a izin vermeliyim –

0

Sen Serie 5161017293 ile Incentario hiçbir satır, hiçbir veri eklenecektir varsa o

INSERT INTO producto 
SELECT 
'ad-101', '27', 'Nissan','NP300','2016','aer3457','1', Id FROM Inventario WHERE Serie = '5161017293' 

çalışmalı, aşağıdaki sorguyu kullanabilirsiniz.