0

以前使用此列创建的表:

        ->addColumn(
            'dictionary_id',
            'integer',
            [
                'default' => null,
                'null' => false,
                'limit' => 11,
                'signed' => false
            ]
        )
        ->addForeignKey(
            'dictionary_id',
            'dictionaries',
            'id',
            ['delete' => 'NO_ACTION', 'update' => 'NO_ACTION']
        )

我想将 dictionary_id 设为可选(可为空)。

由于现有的外键,Phinx 不允许我修改该列,所以我试图删除它,修改该列,然后再次添加外键:

    $table = $this->table('some_table')

        ->dropForeignKey('dictionary_id')
        
        ->update();
    
    $table = $this->table('some_table')

        ->changeColumn('dictionary_id', 'integer', [
            'null' => true,
            'default' => null
        ])

        ->addForeignKey(
            'dictionary_id',
            'dictionaries',
            'id',
            ['delete' => 'NO_ACTION', 'update' => 'NO_ACTION']
        )

        ->update();

但我得到:

Exception: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint in ...

我该如何克服这个问题?

4

0 回答 0