Hi i am trying to create 2 tables in my DB named "brand" & "product". I have created migration file for "brand" called "create_brand" that contains:
public function up()
{
Schema::create('brand', function($table){
$table->increments('brand_id');
$table->string('brand_name', 100);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('brand');
}
The migration file for "product" called "create_product" contains:
public function up()
{
Schema::create('product', function($table){
$table->increments('skuid');
$table->integer('brand_id')->unasigned();
});
Schema::create('product', function($table){
$table->foreign('brand_id')->references('brand_id')->on('brand')->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('product', function($table){
$table->dropForeign('brand_id');
});
Schema::drop('product');
}
Now when i run "php artisan migrate" i get the error:
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error i
your SQL syntax; check the manual that corresponds to your MySQL server v
ersion for the right syntax to use near ') default character set utf8 colla
te utf8_unicode_ci' at line 1 (SQL: create table `product` () default chara
cter set utf8 collate utf8_unicode_ci)
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error i
n your SQL syntax; check the manual that corresponds to your MySQL server v
ersion for the right syntax to use near ') default character set utf8 colla
te utf8_unicode_ci' at line 1
I would be really grateful if someone could help me solve this issue :) Thanks.
Use Schema::create
just once. To edit the table use Schema::table
And when using foreign key the type should be unsignedInteger
. If you create a basic integer and try to put a foreign key on it, it will fail.
Change your codes to
public function up()
{
Schema::create('product', function($table){
$table->increments('skuid');
$table->unsignedInteger('brand_id');
});
Schema::table('product', function($table){
$table->foreign('brand_id')->references('brand_id')->on('brand');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('product');
}
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