目前我在Laravel這種遷移是失敗的:Laravel - 表遷移crror與未簽名的主鍵
public function up()
{
Schema::create('site_permission_modules', function(Blueprint $table)
{
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('site_permission_modules');
}
所顯示的錯誤如下:
SQLSTATE[HY000]: General error: 1005 Can't create table 'orgasystem.site_permission_modules' (errno: 150) (SQL: create table
site_permission_modules
(id
int unsigned not null auto_increment primary key,name
var char(255) not null,created_at
timestamp null,updated_at
timestamp null) default character set utf8 collate utf8_unicode_ci)
我有很多其他正在成功的表格沒有任何問題。
當我複製SQL語句Laravel引發到MySQL時,它也失敗,但一旦我刪除主鍵上的unsigned關鍵字,它會成功。見下面的聲明。
失敗:
create table `site_permission_modules` (
`id` int unsigned not null auto_increment primary key,
`name` varchar(255) not null,
`created_at` timestamp null,
`updated_at` timestamp null)
default character set utf8 collate utf8_unicode_ci;
成功:
create table `site_permission_modules` (
`id` int not null auto_increment primary key,
`name` varchar(255) not null,
`created_at` timestamp null,
`updated_at` timestamp null)
default character set utf8 collate utf8_unicode_ci;
有誰知道爲什麼會發生這種情況?
你的php和mysql版本? – nextt1
使用你的「失敗」的SQL,它在我的MySQL上工作得很好。也許你應該檢查你的mysql版本。 – lcjury
您的「失敗」SQL看起來不錯,並且也在我的MySQL(版本5.6.26)上工作。 –