MySQL的:ERROR 1005(HY000):无法创建表 'receitascakephp.recipes'(错误:150)
问题描述:
CREATE TABLE `users` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`username` VARCHAR(75) NOT NULL,
`password` VARCHAR(75) NOT NULL,
`image` VARCHAR(255)
);
CREATE TABLE `recipes` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`method` TEXT NOT NULL,
`image` VARCHAR(255),
`user_id` INT NOT NULL,
CONSTRAINT `fk_recipes_users` FOREIGN KEY(`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我不知道为什么,但我发现:MySQL的:ERROR 1005(HY000):无法创建表 'receitascakephp.recipes'(错误:150)
ERROR 1005 (HY000): Can't create table 'receitascakephp.recipes' (errno: 150)
答
两个表需要是InnoDB:
CREATE TABLE `users` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`username` VARCHAR(75) NOT NULL,
`password` VARCHAR(75) NOT NULL,
`image` VARCHAR(255)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `recipes` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`method` TEXT NOT NULL,
`image` VARCHAR(255),
`user_id` INT NOT NULL,
CONSTRAINT `fk_recipes_users` FOREIGN KEY(`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;