2010-06-27 107 views
2
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) 

回答

1

两个表需要是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; 
相关问题