0

外部キーである列を削除しようとしています:

$table = $this->table('users');
$table->removeColumn('province_id');
$table->update();

上記ではDBエラーが発生します: The object 'users_province_id' is dependent on column 'province_id'. 最初に FK を削除しようとすると:

$table = $this->table('users');
$table->removeIndex('province_id');
$table->removeColumn('province_id');
$table->update();

同じエラーが発生します。使用removeIndexByName:

$table = $this->table('users');
$table->removeIndexByName('users_province_id');
$table->removeColumn('province_id');
$table->update();

また、動作しません。助けてくれてありがとう。

4

2 に答える 2

1

コードは外部キー制約を削除しませんが、インデックスと列のみを削除します。外部キー制約を削除するにはdropForeignKey()、次のような方法でメソッドを使用します。

$table = $this->table('users');
$table
    ->dropForeignKey(
        // by columns used in the constraint, this would remove _all_
        // foreign key constraints on the table that are using the
        // `province_id` column
        'province_id',

        // optionally pass the name of the constraint in the second
        // argument instead, in order to remove only a specific single
        // constraint by its name
        'foreign_key_constraint_name'
    )
    ->removeIndex('province_id')
    ->removeColumn('province_id')
    ->update();

こちらもご覧ください

于 2020-08-20T14:06:07.090 に答える