Meine Tabelle 'sales_order_details' hat das Feld id
als Ganzzahl 'int (10)' mit einem Standardwert 0
. Ich muss es als primären Autoinkrementschlüssel bei der Migration ändern.Laravel-Migration - wie das ID-Feld zu einem primären und automatisch inkrementierenden später geändert wird
habe ich versucht, auf folgende Weise:
public function up()
{
Schema::table('sales_order_details', function (Blueprint $table){
$table->integer('id')->default(NULL)->change();
$table->increments('id')->change();
});
}
public function down()
{
Schema::table('sales_order_details', function (Blueprint $table){
$table->dropPrimary('id')->change();
});
}
ich folgende Fehlermeldungen erhalten:
[Illuminate \ Database \ QueryException] SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1075 Falsche Tabelle def Inition; es kann nur eine Autokolonne sein, und es muss als Schlüssel (SQL: sales_order_details id INT UNSIGNED AUTO_INCREM ENT NOT NULL CHANGE id ALTER TABLE) definiert werden
[Lehre \ DBAL \ Driver \ PDOException] SQLSTATE [42000 ]: Syntaxfehler oder Zugriffsverletzung: 1075 Falsche Tabelle def Inition; es kann nur eine Spalte Auto sein und es muss als Schlüssel
[PDOException] SQLSTATE [42000] definiert werden: Syntaxfehler oder eine Zugriffsverletzung: 1075 Falsche Tabelle def inition; es kann nur eine automatische Spalte geben und sie muss als Schlüssel definiert werden
Wie wird die Migration ordnungsgemäß durchgeführt? Ich bin mit Version 5.4
Warum Sie diese beide schreiben Zeilen $ table-> integer ('id') -> default (NULL) -> change(); $ table-> increments ('id') -> change(); Nur die zweite wird für Inkremente benötigt. –
Werden "default" und "increments" nicht zu Problemen führen, wenn sie zusammen verwendet werden? –