Re: [問題] ActiveRecord與ForeignKey
<D>
: 在刪除foreign key這段敘述後就能正常建立表格
: 本來以為是sql syntax generation出了問題,不過查了一下教科書
: 看不出來無法建立table 的原因究竟在
: FOREIGN KEY (creator_id) REFERENCES members (id)
: ON UPDATE CASCADE ON DELETE SET NULL的哪部份
: 語法看起來應該是正確無誤,還請板上高手指點迷津了
總算是找到錯誤的真正原因
一開始還以為是MySQL5預設沒有開啟InnoDB (skip-innodb)
找了一整個晚上,竟然都不曉得怎麼在安裝MAMP的MAC OS上
發現對應my.ini的檔案 -_-b
結果發現錯誤原因不只是我定義了foreign key以 _id 結尾
還有對應的資料型態也不一致
感謝godfat的提示,在create table之後確實可以使用execute的
方法加入fkey
而我所引入的plugin則是會讓語法看起來比較整齊一些
t.column :creator_id ,
:int,
:references => :members,
:on_delete => :set_null,
:on_update => :cascade
creator_id 會去找creator table的id column,這是我第一個錯誤
所以必須在 :references => :members 指定是哪張table
而 :int 是我犯的第二個錯誤,資料型態不一致怎麼連結fkey XD
真是難為MySQL 了 囧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.128.143.228
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章