2013-03-07 11 views
6

Bir imleçte mysql workbench içinde hazırlanmış bir deyimi kullanmaya çalışıyorum. İmleç çok büyük bir veri kümesinde çalışır, böylece birçok kez çalıştırılır. Her zaman, EXECUTE adımı için yeni bir sonuç gösterilir. Sonuç olarak çok sayıda açık sonuç penceresi nedeniyle mysql çalışma tezgahında çöküyor. imleç olarakÇalışma tablasındaki mysql EXECUTE komutu için sonuç çıktısını nasıl etkisiz hale getirebilirsiniz

Böyle bir şey yapın:

PREPARE stmt2 FROM @eveningQuery; 
EXECUTE stmt2; 
DEALLOCATE PREPARE stmt2; 

Normalde sorgu susturmaya ama böyle çalışmıyor yürütmek üzere

set aVar = (EXECUTE stmt2); 

gibi şeyler kullanın.

Mysql'deki EXECUTE komutu için çıkışı nasıl devre dışı bırakabileceğinizi bilen var mı?

Not: Ben bir değişkene veri almak nasıl anlamak ancak ne önlemek istiyorsanız çok ilmek Bu mysql-tezgahı kazasında yapacak bu enter image description here

gibi sonuçları özetinde görüntülenen olmasıdır çok. @eveningQuery için bir örnek sorulduğundan, 1 düzenleme

SET @eveningQuery = CONCAT ('seçeneğini @resultNm: = tb_SplitDay den idSplitBill seçin (var olduğu idSplitBill =', idSplitBillVar 've', @columnNameEv, '= 1 ve softdelete = 0)');

idSplitBillVar = İmleciden gelen kimlik. @columnNameEv = Değişken olarak doldurduğum bir sütun.

Sorulduğu için bu bilgiyi ekledim, ancak bu soru benim için gerçekten önemli değil çünkü soru hala en basit sorguda bile duruyor. Hazırlanmış bir deyimi çalıştırdığınızda, bir çıktı sonucu alırsınız. Sadece bu davranışı devre dışı bırakmak istiyorum. Kullanmak

+0

Sadece nitpicking, ama "imleç" yerine "saklı yordam" mı demek istediniz? – RandomSeed

+0

Yorumunuz için teşekkürler. Saklı bir yordamda tanımlanan bir imleç, ancak bu konuyu çok değiştirdiğini düşünmüyorum. –

+0

@eveningQuery quaery örneğini gösterir misiniz? – Devart

cevap

6

sorgu yeni sonuç kümesi oluşturur ve GUI istemci gösteri onu (... Birçok kez) -

SELECT @resultNm:=EXISTS(
    SELECT idSplitBill FROM tb_SplitDay 
    WHERE idSplitBill =', idSplitBillVar, ' AND ', @columnNameEv ,' = 1 AND softdelete = 0 
) 
Bu sorguyu yeniden yazmak, ve sonuç kümesi olabilir

oluşturulmaz -

SELECT EXISTS(
    SELECT idSplitBill FROM tb_SplitDay 
    WHERE idSplitBill =', idSplitBillVar, ' AND ', @columnNameEv ,' = 1 AND softdelete = 0 
) 
INTO @resultNm 
+0

Tamam, bu hile gibi görünüyor, sorgumun sözdizimi hazırlanmış bir ifadeye özgü olduğunu düşündüm, ama önerdiğiniz gibi değil. Cevabınız için teşekkürler hayatımı kolaylaştıracak. (Ps en kısa zamanda ödül alacağım.) –

İlgili konular