Laravel 5'i kullanarak veri silme ile ilgili bazı sorunlar yaşıyorum. Nedenini görmezken bir 'yabancı anahtar kısıtlaması' üzerinde sıkışmış gibi görünüyorum.Laravel Eloquent truncate - Yabancı anahtar kısıtlaması
Güncel veritabanı modelimde sensörler tablosuna (datapoints.sensors_id -> sensor.id) yabancı bir anahtar içeren bir veri noktaları tablosu var.
kod deniyorum:
Route::get('/truncateData', function() {
DB::table('datapoints')->truncate();
DB::table('sensors')->truncate();
return 'Done...';
});
sonucu:sqlstate [42000]: sözdizimi hatası veya erişim ihlali:. 1701 yabancı anahtar kısıtlaması (
alerting
datapoints
başvurulan bir tabloyu kesmek değil Can, KISITLAMA YABANCI KEY (sensor_id
datapoints_sensor_id_foreign
) . REFERANSLARalerting
sensors
(id
)) (SQL:sensors
kesecek)
Siparişin tersi (sensörlerin ilk kez silinmesi) durumunda, ancak veri noktaları boş olduğunda, sensörlerin silinmesiyle ilgili sorun olmazsa, bu kısıtlamayı anlayacağım.
DB::table('datapoints')->delete();
DB::table('sensors')->delete();
return 'Done...';
Son olarak ben de silme tabloları arasındaki '() DB :: işlemek' açıkça ekleyerek çalıştı, ama hepsi aynı sonucu döndüren: Ben de çalıştık.
Bu normal davranış mı? Bir şey mi eksik?
Şimdiden teşekkürler.
Alkış,
Wesley
Gerçekten de. Sonunda satırları kesmek yerine sildim ancak bu da işe yarayacaktı. Sorunun silerle de ortaya çıktığını söylediğimde hata yapıyordum. – Wesley