[Решено] Ссылочный столбец в ограничении внешнего ключа несовместимы

Тема в разделе "Базы Данных", создана пользователем immortal727, 8 авг 2020.

Статус темы:
Закрыта.
  1. immortal727

    immortal727

    Регистрация:
    17 май 2018
    Сообщения:
    17
    Симпатии:
    0
    Есть таблица

    Код:
    CREATE TABLE IF NOT EXISTS `product` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `category_id` tinyint(3) unsigned NOT NULL,
      `brand_id` tinyint(3) unsigned NOT NULL,
      `title` varchar(255) NOT NULL,
    ....
    )
    Создаю под нее таблицу, которая будет совместима с ней по полю product_id
    Код:
    CREATE TABLE `star_rating_ip` (
      `id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      `rating_ip` varchar(16) NOT NULL DEFAULT '0.0.0.0', -- ip адрес пользователя
      `product_id` int(10) NOT NULL, -- идентификатор товара за какой проголосвал пользователь
       CONSTRAINT rating_fk
         FOREIGN KEY (`product_id`)
         REFERENCES `product`(`id`)
         ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Но при ее создании ошибка
    Error Code: 3780. Referencing column 'product_id' and referenced column 'id' in foreign key constraint 'rating_fk' are incompatible.

    Т.е., как я правильно понял не совместим тип полей product_id и само id из таблицы `product`

    Но я и там и там делаю int(10), что не нравиться - не могу понять. Подскажите пожалуйста в чем проблема, как правильно сделать?
     
    Lasted edited by : 8 авг 2020
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    сделать product_id - UNSIGNED.
    Код:
    product_id` int(10) UNSIGNED NOT NULL,
     
  3. immortal727

    immortal727

    Регистрация:
    17 май 2018
    Сообщения:
    17
    Симпатии:
    0
    Спасибо большое, а то понять не мог немного в чем дело
     
Статус темы:
Закрыта.