1093 - 't belirtin güncelleme için hedef tablo MySQL Hata tümcesi
Bir tablo bozuk girdileri ile benim veritabanında story_category
var. Sonraki sorgu bozuk girdileri verir:
SELECT *
FROM story_category
WHERE category_id NOT IN (
SELECT DISTINCT category.id
FROM category INNER JOIN
story_category ON category_id=category.id);
Onları infaz silmeye çalıştım:
DELETE FROM story_category
WHERE category_id NOT IN (
SELECT DISTINCT category.id
FROM category
INNER JOIN story_category ON category_id=category.id);
Ama bir sonraki hata alıyorum:
#1093 - hedef tablo 'story_category' tümcesi . GELEN güncelleştirme için belirtebilirsiniz
Bunu nasıl bitireceğim?
CEVAP
Güncelleme: Bu cevap genel hata sınıflandırma kapsar. En iyi OP tam sorgu işlemek için nasıl hakkında daha ayrıntılı bir cevap için lütfen DanDarc's answer bkz
MySQL SEÇİN bölümünde kullandığınız aynı tabloyu değiştiremezsiniz.
Bu davranışlarına belgelenmiştir:
http://dev.mysql.com/doc/refman/5.6/en/update.html
İç içe sorgu kullanarak durdurmak ve iki bölümden operasyon yürütmek gerekir, veya alternatif olarak basit bir yan.
Aşağıda Baron Schwartz, published at Nabble dan:
Ancak, yapabileceğiniz çok tablo güncellemeleri gibi bu:
UPDATE tbl AS a
INNER JOIN tbl AS b ON ....
SET a.col = b.col
Kesinlikle alt sorgu lazım, geçici bir çözüm var, ama eğer çeşitli nedenlerden dolayı çirkin, performans dahil
UPDATE tbl SET col = (
SELECT ... FROM (SELECT.... FROM) AS x);
FROM yan tümcesi iç içe sorgu örtülü bir geçici oluşturur tablo, bu yüzden güncellemenizi aynı tablo sayılmaz.
Bunları nasıl belirli sütun adları ile...
Nasıl bir mysql veritabanı tablo boyut...
Nasıl MySQL bir tablo sütunu yeniden a...
Nasıl belirli bir tablo için MySQL mot...
MySQL hata kodu: MySQL Tezgah GÜNCELLE...