看板 Ruby 關於我們 聯絡資訊
<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