1615: Prepared statement needs to be re-prepared
MySQLNe demek?
Sunucu tarafında hazırlanmış (prepared) bir ifadenin çalıştırılması, dayandığı meta verilerin (tablo/view tanımı) değişmesi nedeniyle geçersiz kaldığı için reddedildi. İfadenin yeniden hazırlanması gerekir.
Neden olur?
Prepared statement hazırlandıktan sonra ilgili tabloda DDL yapılması (ALTER TABLE), tablonun yeniden oluşturulması, metadata cache'in dolup girdinin atılması ya da table_definition_cache/table_open_cache limitlerinin küçük olması. Yoğun DDL ile çalışan sistemlerde ve bazı ORM/pool senaryolarında sık görülür.
Nasıl çözülür?
Çoğu istemci kütüphanesi bu durumu yakalayıp ifadeyi otomatik yeniden hazırlar; uygulamada bu hatayı yakalayıp prepare + execute'u tekrarlayın (retry). Sık tekrarlıyorsa table_definition_cache ve table_open_cache değerlerini artırın. Uygulama trafiği sırasında gereksiz DDL yapmaktan kaçının.
Aynı motorda diğer kayıtlar
- 1236Got fatal error 1236 from master when reading data from binary log
- 1129Host 'host' is blocked because of many connection errors
- 1194Table 'name' is marked as crashed and should be repaired
- 1553Cannot drop index needed in a foreign key constraint
- 3948Loading local data is disabled; this must be enabled on both the client and server sides
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key
- 1055Expression not in GROUP BY (only_full_group_by)