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;

I don't know why, but I'm getting:

ERROR 1005 (HY000): Can't create table 'receitascakephp.recipes' (errno: 150)
bignose
  • 30,281
  • 14
  • 77
  • 110
Thomas
  • 21
  • 1
  • 2
  • Does this answer your question? [MySQL Creating tables with Foreign Keys giving errno: 150](https://stackoverflow.com/questions/1457305/mysql-creating-tables-with-foreign-keys-giving-errno-150) – Dharman Jun 03 '21 at 11:45

1 Answers1

1

Both tables need to be 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;
Mike
  • 21,301
  • 2
  • 42
  • 65