2012-04-04 6 views
0

を追加しますSQLiteでサポートされています。これは、動作を目的としているSqliteを3は、私は私のテーブルに外部キーを追加しようとしているんだけど、私が受け取ることをやるしようとすると、外部キーエラーのPHPのYii

$this->addForeignKey('fk_user', 'tbl_data', 'id_responsable','tbl_user', 'id', 'CASCADE'); 

    $this->createTable('tbl_data', array(
       'id' => 'pk', 
       'name' => 'string', 
     'id_responsable' => 'integer', 
    )); 

答えて

1

、ソースを参照してください。そうでないとsqliteの上の唯一の仕事に意味している場合、私は、(これは違うのDBMS間で移植可能なコードであることを試みていると仮定していhttps://github.com/yiisoft/yii/blob/master/framework/db/schema/sqlite/CSqliteSchema.php#L242

public function addForeignKey($name, $table, $columns, $refTable, $refColumns, $delete=null, $update=null) 
{ 
    throw new CDbException(Yii::t('yii', 'Adding a foreign key constraint to an existing table is not supported by SQLite.')); 
} 

をp)

この機能をオーバーライドする場合は、Sqliteスキーマクラスを拡張してから、問題の世界にしなければなりません。

Yii :: app() - > db-> driverNameに基づいて、外部キーをオフに切り替える方がよい場合があります。 == sqliteの場合は、外部キーを追加しないでください。

テーブルを保存して外部キーで再作成し、すべてのデータを再度読み込みます。

関連する問題