Squeryl Foreign Key onDelete级联不起作用

时间:2014-11-18 08:30:13

标签: scala orm cascade squeryl

我有一个用户和一个设备表。如果用户连接到设备,则设备将知道其用户(外键)。设备只能有一个用户 我用

创建了一个外键
userToDevice.foreignKeyDeclaration.constrainReference(onDelete cascade)

它会像那样改变表格

alter table Device add constraint DeviceFK10 foreign key (user_id) references User(id) on delete cascade;

现在,当我创建用户,将其分配给设备然后删除用户时,设备表中的user_id属性也不会被删除。

//CREATE DEVICE
val device = queries.deviceCreate("XYZ-Device", None) //None User

//ASSIGN USER TO DEVICE
update(deviceT)(d=> where(d.id === device.get.id) set(d.user_id := user.id))

//DELETE USER
userTable.deleteWhere(u=> u.id === user.id)

为什么即使使用删除级联也不会删除外键?

修改
我想我对这种关系搞砸了 在这里您可以看到示例代码。也许你可以告诉我这里我做错了什么 ShowCase on Github

EDIT2:
似乎mysql甚至没有创建外键。当我检查localhost / phpmyadmin

时,我找不到任何内容

1 个答案:

答案 0 :(得分:2)

我认为MySQL的默认表类型是MyISAM,doesn't support foreign keys