如何在Laravel 4中使用BIGINT作为自动递增主键

rei*_*hin 5 php mysql laravel laravel-4

我试图模仿wordpress'的主键大小,这是BIGINT(20),但似乎laravel没有本机功能来做这个..我在laravel论坛中看到一个页面,得到了这样的代码:

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

但是当我尝试在该期间附加一个外键时artisan migrate,会抛出一个MYSQL错误:

[例外] SQLSTATE [HY000]:一般错误:1005无法创建表'db.#sql- 1730_15'(错误号:150)(SQL:alter table usersadd constraint users_role_id_foreign foreign key(role_id)references roles(id))(Bindings:array ())

这样做的正确方法是什么?我在哪里弄错了?

谢谢!

rmo*_*bis 17

您很可能忘记将role_id外键的类型也设置为BIGINT(20).这不是Laravel的问题,而是MySQL的问题.


顺便说一句,Laravel确实有一个本地功能来做到这一点:

$this->bigIncrements('id');
Run Code Online (Sandbox Code Playgroud)

这需要使其无符号,自动增量主键.