У меня есть две таблицы:
CREATE TABLE `Users` (
`user_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`first_name` varchar(50) NOT NULL DEFAULT '',
`last_name` varchar(50) NOT NULL DEFAULT '',
`login` varchar(50) NOT NULL DEFAULT '',
`password` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
А ТАКЖЕ
CREATE TABLE `Books` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(50) NOT NULL DEFAULT '',
`author` varchar(50) NOT NULL DEFAULT '',
`year` int(4) NOT NULL,
`available` int(3) NOT NULL DEFAULT '0',
`availabledate` date NOT NULL,
`user_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
Я пытаюсь создать связь между этими двумя, чтобы у одного пользователя могло быть несколько книг (user_id), но что бы я ни делал, я получаю ошибки. Либо
Не удается добавить или обновить дочернюю строку: ограничение внешнего ключа не работает (
bookstore
., ОГРАНИЧЕНИЕbooks_fk
FOREIGN KEY (user_id
) ССЫЛКИusers
(user_id
) ON DELETE CASCADE ON UPDATE CASCADE)
или до того, как я не использовал unsigned int в таблице Books, и я сказал, что значение по умолчанию равно 0 (что я бы предпочел, но я не думаю, что смогу это сделать?) В этом случае я получил ошибку 150.