1. 程式人生 > >Laravel 5.5 遷移報錯:General error: 1215 Cannot add foreign key constraint

Laravel 5.5 遷移報錯:General error: 1215 Cannot add foreign key constraint

問題

之前一直用的 Laravel 5.4,資料庫也是直接寫 sql 的,感覺可定製性更強,順便鍛鍊下 sql。這次改用了 Laravel 5.5,索性用遷移建庫試試,結果報錯如下:

SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `users` add constraint `users_production_enterprise_id_foreign` foreign key (`production_enterprise_id`) references `production_enterprises` (`id`))

解決

看樣子是不能新增約束。然後我做了以下幾步檢查:

  1. 確認儲存引擎支援外來鍵約束(MyISAM 不支援)
  2. 確認外來鍵約束的主、副表資料型別嚴格一致
  3. 副表新增外來鍵時,確認要參考的主表及其目標欄位已存在

按照第 3 步,由於 Laravel 的遷移檔名為 "2018_04_15_101341_create_users_table" 的字首時間戳格式,所以我修改了要參考主表字段的那些檔案的時間戳,讓那些主表被優先建立。

網上看到也有改動 Laravel 框架原始碼的做法,我不太喜歡,也不推薦。總之,問題解決。

相關推薦

Laravel 5.5 遷移General error: 1215 Cannot add foreign key constraint

問題 之前一直用的 Laravel 5.4,資料庫也是直接寫 sql 的,感覺可定製性更強,順便鍛鍊下 sql。這次改用了 Laravel 5.5,索性用遷移建庫試試,結果報錯如下: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key c

錯誤代碼 1215 Cannot add foreign key constraint

mysql 1215 foreign key index 新增外鍵時報錯:錯誤代碼: 1215 Cannot add foreign key constraint 表key_list:CREATE TABLE key_list (server_app_id INT(11) NOT NULL ,

MySQLcannot add foreign key constraint解決方法

這種報錯是提示無法正確的插入外來鍵約束,那我分析一下,設定外來鍵有以下幾個條件: 1、要設定外來鍵的欄位不能為主鍵 2、改建所參考的欄位必須為主鍵 3、兩個欄位必須具有相同的資料型別和約束 滿足這三個條件一般在建立外來鍵的時候就不會報錯。

關於mysql創表的時候出現錯誤cannot add foreign key constraint

今天在創mysql表的時候出現錯誤:cannot add foreign key constraint 查了網上的大部分錯誤,發現都不對,後來猛地反應過來:外來鍵必須是主鍵。 這個問題真的特別重要。牢記!

win10安裝PowerDesigner16.5An error[-5001 ... 的解決辦法

在安裝PowerDesigner16.5時,點選exe安裝程式時報如下錯誤: 這是因為我先前安裝PowerDesigner失敗導致PowerDesigner的登錄檔遺留在電腦內,電腦以為我已經啟動

mysql 5.7安裝 請鍵入 NET HELPMSG 3534 以獲得更多的幫助

本地顯示安裝了5.5版本,後來在執行sql指令碼的時候報錯,原因是由於5.5不支援兩個欄位為timestamp型別,沒有具體分析原因,就解除安裝了5.5版本。網上隨便下載了一個5.7的mysql,安裝後,使用command client啟動發現閃退,找到原因是,

laravel --Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW)

parse size font 技術分享 info error span expected 原因 報錯如下: 原因:( ) { } [ ] 不對稱,或者用錯了。 laravel --報錯:Parse error: syntax error, unexpected &#

Centos7.5透明代理[squid] kid1| ERROR: No forward-pro

[[email protected] squid]# squid -vSquid Cache: Version 3.5.20Service Name: squidconfigure options: '--build=x86_64-redhat-linux-gnu' '--host=x86_64-r

Myeclipse啟動An error has occurred.See the log file

entry classpath ret 出現 restore div nap cati security 出現這個問題是因為斷電前myeclipse還在運行,日誌報錯如下: !ENTRY org.eclipse.osgi 4 0 2017-07-24 08:29:48.4

shell syntax error: unexpected end of file

not app 文件格式 解決方案 編輯 window 曾經 command exp 有時執行腳本時會報錯: [[email protected] shell]# sh -x test.sh + $‘\r‘ : command not found test.s

十、cent OS開啟APR模式configure: error: Found APR 1.3.9. You need version 1.4.3 or newer installed

config 安裝目錄 prefix org col spa -a you 新版 錯誤內容顯示APR的版本過低,需要新版本 到http://apr.apache.org/download.cgi#apr1這個地址下載所需要的包apr-1.4.5.tar.gz apr-ic

memcache啟動memcached: error while loading shared libraries: libevent-XXXXX5: cannot 。。。。

share mem dev 鏈接 debug 修改文件 memcache null 鏈接地址 創建連接 ln -s /usr/lib/libevent-2.1.so.6 /usr/lib/libevent-2.1.so.6 如果還不行就下面解決 執行下面語句查看鏈接

TensorFlow安裝之後導入libcudnn.so.6:cannot open sharedobject file: No such file or directory

-a ring share 環境 .net str ubunt dir 附件 轉載自:http://blog.csdn.net/silent56_th/article/details/77587792 系統環境:Ubuntu16.04 + GTX1060 目的:配置一下py

Linux中mysql進入命令行MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.99.192' (111)

端口 connect 通過 l命令 linu serve nbsp linux err 場景:在Linux中安裝mysql01和mysql02,通過VIP虛出一個VIP=192.168.99.192,mysql01為主ip為192.168.99.153,mysql02為備機

c++ include包含工程目錄下的.h檔案,fatal error C1083: 無法開啟包括檔案:“Sales_item.h”: No such file or directory

背景:刷c++primer的題目,將下載的某個標頭檔案拖拽到自己建立的工程目錄下,在自己新建的原始檔中include包含時,報無法開啟檔案 明明有檔案 為什麼說無法開啟呢 於是到本地的工程目錄中開啟一看,果然沒有這個檔案 說明通過滑鼠拖拽檔案進入到工程樹上面,檔案並沒

python中使用pip安裝Fatal error in launcher... 解決方法

python安裝了2和3版本在 cmd 中用pip報的錯誤為:Fatal error in launcher:Unable to create process using 這是因為你安裝了python3和python2在你的windows下,並且在環境變數中分別配置了pip,可是並沒有區分pip3還是p

log4j:ERROR Category option " 1 " not a decimal integer.

程式碼: package com.zml; import org.apache.log4j.Logger; public class Day01 { private static Logger logger = Logger.getLogger(Day01.class);

Hplsql...HiveSQLExpection:Error while compiling statement:No privilege 'Select' found for inputs {.....}

實踐hplsql時,遇到的問題總結一下,若有不對的地方,歡迎交流。     一、Hplsql簡介   hplsql的介紹詳見:http://lxw1234.com/archives/2015/09/492.htm   二、hpsql的配置檔案為hplsql-sit

pycharm執行selenium+webdriver(chromedriver)unknown error: chrome failed to start

首先我確定了我的chrome和chromedriver對應版本是一致的 在cmd命令模式中能開啟chrome並執行,但是在pycharm中卻不能開啟chrome,並報錯unknown error: chrome failed to start 解決方法:關閉pycharm,然後找到

Javajava.math.BigDecimal cannot be cast to java.lang.String

從資料庫取count、sum等函式的值需要轉化成Integer的時候出現 java.math.BigDecimal cannot be cast to java.lang.String的報錯 錯誤程式碼: Integer.parseInt((String)map.get("id"