2016-03-22 18 views
1

私はMariaDBを使用しており、今ではデータベーステーブルに外部キーを追加します。私はset defaultを私のon delete制約として使用しようとすると問題を抱えています。私はこれをやっているとき、しかし削除時に「デフォルトに設定」された外部キーを追加できません

`alter table `pages` add constraint pages_user_id_foreign foreign key (`user_id`) references `users` (`id`) on delete set default` 

pagesテーブルでuser_idのデフォルトは1です)、私はエラー

SQLSTATE[HY000]: General error: 1005 Can't create table 'project.#sql-add_38' (errno: 150)

私が最後に見て取得しています外部キーエラー、私はテーブルprojectの外部キー制約に次のような出力に

160322 12時40分56秒エラーを取得しています。 pages: 変更テーブルproject。外部キー制約のあるpagesが失敗しました。 '外部キー(user_id)のパーズエラーは、削除セットのデフォルトで' id 'のusers(削除セットのデフォルトに近い)を参照しています。私は

alter table `pages` add constraint pages_provider_id_foreign foreign key (`provider_id`) references `providers` (`id`) on delete cascade 

どういうわけか削除条件に私のためにset nullを使用する場合

私はon delete set defaultせずにそれを行うと、それは、同じ

`alter table `pages` add constraint pages_user_id_foreign foreign key (`user_id`) references `users` (`id`)` 

が行く何の問題もなく動作しますが、唯一set default doesnの」エラーメッセージで十分な情報が得られません

答えて

関連する問題