2012-10-09 23 views
8

MySql'de işlem sırasında bir istisna oluştuğunda geri çekilecek bir işlem oluşturmaya çalışıyorum. Kayıtlı bir prosedürde aşağıdakini kullanarak benzer.Hata durumunda geri alma ile MySQL Komut Dosyası

DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK; 

Bu, saklı yordam yazmadan yapılabilir mi? Örneğin, aşağıdaki kod parçacığı, ikinci insert başarısız olacağından ilk eki geri almalıdır.

START TRANSACTION; 
INSERT INTO mytable VALUE 'foo1',2,'foo3','foo4' 
INSERT INTO mytable VALUE 'foo1','foo2','foo3','foo4' 
COMMIT 
+0

PHP kullanıyor musunuz? Bu programlama tarafında elde edilebilir. –

+0

PHP yok sadece SQL. Java'da başarabilirim ancak gereksinimler sadece SQL betiğini ister. – Damien

+0

Neden saklı yordamı kullanmadınız? –

cevap

5

Sana ekler herhangi biri başarısız olursa geri alma olacak tek bir işlemde, örneğin uçlar için, içeren bir SQL komut dosyası çalıştırmak istediğiniz doğru anlamak. Doğrudur?

Bu konuda% 100 değilim, ancak eminim ki bunu saklı bir yordam olarak veya programatik olarak Java'da yapmalısınız.

+1

Evet, yapmak istediğim şey bu ve internette arama yapmamın sonucudur, ancak bu seçeneğin bir SQL komut dosyasından alınamayacağına inanmak zor. – Damien