2

我试图想出从我的 sql 中的子表中删除行的最佳解决方案。

例如,我有两张表,一张称为 users,另一张称为 users_information。第二个表 users_information 使用名为 user_id 的外键,它实际上是“users”表中的“id”。

我想使用级联删除选项,每当我从“用户”表中删除一行时(通过使用“id” ofc),我想删除用户信息中的同一行,其中 id = user_id。

我很难弄清楚,试着寻找并发现如何在 mysql 中删除级联?

但这没有得到很好的解释,我相信这是我的目标解决方案。

这是我的表格结构,如果您发现我可能做错了/不是最好的方法,请告诉我。

CREATE TABLE `users_information` (
    `id` int(20) NOT NULL AUTO_INCREMENT,
    `user_id` int(11) NOT NULL,
    `first_name` varchar(15) NOT NULL,
    `last_name` varchar(15) NOT NULL,
    `country` varchar(30) NOT NULL,
    `profession` varchar(40) NOT NULL,
    `gender` varchar(6) NOT NULL,
    `birthday` datetime NOT NULL,
    `city` varchar(50) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `user_id` (`user_id`)
    CONSTRAINT `myForeignKey` FOREIGN KEY (`user_id`)
    REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

    CREATE TABLE `users` (
    `id` int(20) NOT NULL AUTO_INCREMENT,
    `password` varchar(82) NOT NULL,
    `email` varchar(60) NOT NULL,
    `created` date NOT NULL,
    `user_type` int(2) NOT NULL,
    `active` smallint(2) NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

我忘了提:“users_information”的代码产生以下错误:

* #1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 13 行的“CONSTRAINT myForeignKeyFOREIGN KEY ( user_id) REFERENCES users( ) O”附近使用正确的语法id

4

1 回答 1

2

在以下行后添加逗号

user_id( user_id)

于 2013-09-12T08:56:36.177 回答