Laravel migration primäre (oder Schlüssel) "Bezeichner zu lang"
Habe ich einfach Laravel migration-Datei angeben composite primary key :
// ...
public function up()
{
Schema::create('my_super_long_table_name', function($table)
{
$table->integer('column_1');
$table->integer('column_2');
$table->integer('column_3');
$table->primary(['column_1', 'column_2', 'column_3']);
});
}
// ...
Und beim laufen php artisan migrate
dieser Fehler wird geworfen :
SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'my_super_long_table_name_column_1_column_2_column_3' is too long
- Es könnte hilfreich sein, wenn Sie geben die genaue version der Migration von und die version, die Sie migrieren zu.
- Migration in laravel ist eine Datei, die Hexe definieren Datenbank-Struktur. Nicht eine "echte" migration von einer version zu einer anderen app.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Geben Sie einfach die wichtigsten Namen, wenn du es erstellst (mit dem zweiten argument für
primary
).Nächsten,
Wenn Sie Fehler haben, wie
You have an error in your SQL syntax ...
nach dieser änderung bitte stellen Sie sicher, dass Sie keinen reservierten Wort von Ihrem Datenbank-engine für Ihre Schlüssel name.Z.B. für MySQL : http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html
Tipp :
primary
reserviert ist, so verwenden Sie es nicht 😉$table->foreign('foreign_column', 'fk_name')->references('id')->on('foreign_table');
.