I made a migration with this setup:
$table->increments('id');
$table->integer('user_id', 10)->unsigned(); // this is meant to be used as a foreign key
After doing php artisan migrate it returns an error:
[Exception]
SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition;
there can be only one auto column and it must be defined as a key (SQL: create table `transactions` (`id` int unsigned not null auto_increment primary key, `user_id` int unsigned not null auto_increment primary key) default character set utf8 collate utf8_unicode_ci) (Bindings: array ())
I didn't specify user_id to be an auto_increment primary key but Migration treats it as so.
How can I make a foreign key in Migrations?
@crynobone: Second parameter are for boolean use to determine primary key, there no length option for integer.
Refer here: https://github.com/laravel/laravel/issues/2212#issuecomment-21608193
In Laravel 4 , second parameter in integer function is for indicating the integer column to be auto incremented or not ( and therefore primary key or not ) In my case , to add an auto incremented id in a table I write it like that
$table->integer('id' , true);
It creates an integer column with 11 digits .
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With