1

我正在尝试在 mysql db 中使用 ON CASCADE DELETE 但我无法使其工作。这是我的代码:

CREATE TABLE sometable
(
testId CHAR(43),
blocked BOOL,
PRIMARY KEY(testId)
 );

CREATE TABLE p
( 
testId CHAR(43),
phrase text,
source text,
FOREIGN KEY (testId) REFERENCES sometable (testId) on delete cascade
);

CREATE TRIGGER sometable_insert BEFORE INSERT ON `sometable` FOR EACH ROW SET NEW.`testId` =UUID();

然后我执行插入到某个表中,这将生成一个 UUID。我把这个 UUID 插入到表 p 中。插入 p(testId, phrase, source) values('07616f60-424f-11df-871a-b98e9', 'fun', 'test');

当对 sometable 中的行进行删除时,表 p 中没有任何反应。我错过了什么或我做错了什么

4

1 回答 1

1

好的,找到了解决方案。我必须像这样指定 innodb 的类型:

CREATE TABLE sometable
(
testId CHAR(43),
blocked BOOL,
PRIMARY KEY(testId)
) type=innodb;

谢谢你的意见

// 雅各布

于 2010-04-07T15:06:02.853 回答