2016-05-16 56 views
1

我的代碼是在這裏,當我嘗試使用laravel

public function up() 
    { 
     Schema::create('semesters', function (Blueprint $table) { 
//   $table->increments('id'); 
      $table->engine = 'InnoDB'; 

      $table->string('semester_id')->unique()->unsigned(); 

      $table->timestamps(); 

     }); 
    } 

錯誤添加主鍵的數據類型爲字符串錯誤發生在這裏

[照亮\數據庫\ QueryException] SQLSTATE [ 42000]:語法錯誤 或訪問衝突:1064您的SQL語法中有錯誤;檢查 對應於您MariaDB的服務器版本的 正確的語法使用手動接近「無符號不爲空,created_at倍夯實 默認0不爲空,updated_at時報」在1號線(SQL:CREATE TABLE semesterssemester_id文本簽名不爲空,created_at 時間戳默認0不爲空,updated_at時間戳默認0不 空)默認字符S等UTF8整理utf8_unicode_ci發動機= InnoDB的)

+1

你不混合型? 'string' VS'unsigned'? ();}無符號();' 到 – Alex

+0

我想要字符串數據類型到我的主鍵 –

+1

所以刪除' - >無符號();'部分然後 – Alex

回答

2

您混合類型:stringunsigned(這是INT

所以如果你需要此列是你應該得到這裏擺脫unsigned part的字符串:

$table->string('semester_id')->unique()->unsigned(); <--- 

讓行變成了:

$table->string('semester_id')->unique();