ile silme DB tablosundaki yinelenen girişlerin nasıl silineceğini ve yeni kopyaların tabloda nasıl saklanacağını merak ediyorum.Laravel 5.1 DB'de çiftleri
$table->increments('id');
$table->string('text');
$table->string('type');
$table->integer('external_id');
$table->timestamps();
Diğer DB'den ithal ediyorum, ben günde bir kez tüm verileri almak istiyorum beri DB zaten bazı mevcut girişler olacağı anlamına geliyor ve yeni girişler olarak: Bu benim tablo benziyor nasıl iyi. Sadece yeni olan girdileri tutmam gerektiğinden, tüm eski girdileri (yeni olmayan yinelenen ve benzersiz girdiler) silmem gerekir. Laracell 5.1'de Eloquent ile yapmanın bir yolu var mı? Bunu denedim, ama tablodaki her şeyi siliyor: Sorgu aşağıdaki gibi görünebilir
$deleteDuplicates = DB::table('questions')->select('external_id')->distinct()->delete();
Bu bana aşağıdakileri veriyor ng hatası: Connection.php satırında QueryException 651: SQLSTATE [42000]: Sözdizimi hatası veya erişim ihlali: 1064 SQL sözdiziminizde bir hata var; 'n1' iç birleşmesi 'soruları' n1 'n1'.'id'> '' olarak' as'n1'nın 'asıl' seçeneğinin yakınında kullanmak için doğru söz dizimi için MySQL sunucu sürümünüze karşılık gelen kılavuzu kontrol edin 1. satırda (SQL: soruları "n1" olarak "n1" olarak "soru" olarak "n1" iç birleştirme "soruları" n1 "n1" n1 "nı" n2'dir. '.'external_id' = n2.external_id) – Marco
Yukarıdaki bağlantıyı kontrol edin. Eloquent işe yaramadıysa bile, sql sql koyabilirsiniz nerede sorgu oluşturucu kullanın. Ama eğer işe yarayıp yaramadığına bakarsak, test db'nizde SQL'i kontrol edin. – iamkdev