8

wordpress の主キー サイズである BIGINT(20)を模倣しようとしていますが、laravelにはこれを行うためのネイティブ関数がないようです。laravel フォーラムでページを見て、次のようなコードを取得しました。

$table->bigInteger('id')->primary();

しかし、実行中にその ID に外部キーをアタッチしようとすると、artisan migrateスローされる MYSQL エラーがあります。

[Exception] SQLSTATE[HY000]: General error: 1005 Can't create table 'db.#sql- 1730_15' (errno: 150) (SQL: alter table usersadd constraint users_role_id_foreign external key ( role_id) references roles( id)) (Bindings: array ( ))

これを行う適切な方法は何ですか、またはどこが間違っていますか?

ありがとう!

4

2 に答える 2

25

role_id 外部キーのタイプも BIGINT(20) に設定するのを忘れている可能性があります。これは実際には Laravel の問題ではなく、MySQL の問題です。


ところで、Laravel にはこれを行うためのネイティブ関数があります。

$this->bigIncrements('id');

これにより、署名なし自動インクリメント、および主キーになります。

于 2013-07-28T04:08:35.830 に答える