2016-04-08 8 views
-2

Mein Tabellenname customers Spalte ist ein Rollback ist mail ich mit Syntax versuchtLaravel: Wie Spalte eindeutig

public function down() 
{ 
    Schema::table('customers', function (Blueprint $table) { 
     $table->dropUnique('mail'); 
     $table->string('mail',255)->change(); 
     $table->string('first_name',255)->change(); 
     $table->string('first_name_reading',255)->change(); 
     $table->string('last_name',255)->change(); 
     $table->string('platform',255)->change(); 
    }); 
} 

Aber es funktioniert nicht.

[Illuminate\Database\QueryException] 
    SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP 'mail'; check that column/key exists (SQL: alter 
    table `customers` drop index `mail`) 

Können Sie mir Ihre Hilfe geben! Bitte,

+1

Das sollte funktionieren, aber Sie sollten uns die vollständige 'down() 'Migration-Funktion und die Fehlermeldung zeigen, die Sie erhalten. Ziehen Sie auch einen Blick in die Datenbank, um zu sehen, ob Sie dort einen eindeutigen Schlüssel * haben und wie er heißt. – ceejayoz

+0

1091 DROP 'mail' nicht möglich; Überprüfen Sie, ob die Spalte/der Schlüssel vorhanden ist (SQL: alter Tabelle 'Kunden' Drop-Index' mail') –

+1

Nun, es existiert kein Index mit dem Namen 'mail'. Ihr ursprünglicher Code in der Frage war der korrekte Name - '$ table-> dropUnique ('customers_mail_unique');'. – ceejayoz

Antwort

1

öffnen mysql-Konsole und korrekten Index Schlüsselnamen für die Kunden-Tabelle und verwenden Sie bekommen, dass mit Ihrem Code $table->dropUnique('correct_name');

SHOW INDEX FROM customers; 
+0

1091 DROP 'mail' nicht möglich; Überprüfen Sie, ob die Spalte/der Schlüssel existiert (SQL: alter Tabelle 'Kunden' Drop-Index 'mail') –

+1

Es sollte' $ table-> dropUnique ('customers_mail_unique') 'sein. –

+0

[PDOException] SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1091 DROP 'customers_mail_unique' nicht möglich; Überprüfen Sie, ob die Spalte/ den Schlüssel vorhanden ist –

2

Noch lustiger, ein Array-Parameter an die dropUnique Funktion und Laravel generieren passieren kann der richtige Name für dich. Versuchen Sie Folgendes: $table->dropUnique(['mail']).

Referenz the manual.

Verwandte Themen