作者huge (huge)
看板Ruby
标题Re: [问题] ActiveRecord与ForeignKey
时间Sun Nov 9 16:06:05 2008
<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