Что нового

MySQL и её Foreign key (1 Viewer)

  • Автор темы MaHarder
  • Дата начала
Статус
Закрыто для дальнейших ответов.
MaHarder

MaHarder

Модератор
SkripTers TEAM
Кодеры
OLD SkripTers
Регистрация
17 Дек 2019
Сообщения
1,438
Реакции
800
Имею
SQL:
create table dle_category
(
    id               mediumint(8) auto_increment
        primary key,
    parentid         mediumint(8) default 0   not null,
    posi             mediumint(8) default 1   not null,
    name             varchar(50)  default ''  not null,
    alt_name         varchar(50)  default ''  not null,
    icon             varchar(200) default ''  not null,
    skin             varchar(50)  default ''  not null,
    descr            varchar(300) default ''  not null,
    keywords         text                     not null,
    news_sort        varchar(10)  default ''  not null,
    news_msort       varchar(4)   default ''  not null,
    news_number      smallint(5)  default 0   not null,
    short_tpl        varchar(40)  default ''  not null,
    full_tpl         varchar(40)  default ''  not null,
    metatitle        varchar(255) default ''  not null,
    show_sub         tinyint(1)   default 0   not null,
    allow_rss        tinyint(1)   default 1   not null,
    fulldescr        text                     not null,
    disable_search   tinyint(1)   default 0   not null,
    disable_main     tinyint(1)   default 0   not null,
    disable_rating   tinyint(1)   default 0   not null,
    disable_comments tinyint(1)   default 0   not null,
    enable_dzen      tinyint(1)   default 1   not null,
    enable_turbo     tinyint(1)   default 1   not null,
    active           tinyint(1)   default 1   not null,
    rating_type      tinyint(1)   default -1  not null,
    name_en          tinytext                 not null,
    alt_name_en      tinytext                 not null,
    metatitle_en     tinytext                 not null,
    descr_en         text                     not null,
    keywords_en      text                     not null,
    fulldescr_en     text                     not null,
    schema_org       varchar(50)  default '1' not null
)
    charset = utf8mb4;

SQL:
create table dle_myshows_genres
(
    id           int auto_increment
        primary key,
    myshows_id   int(15)                              null,
    name         varchar(255)                         null,
    own_name     varchar(255)                         null,
    cat_id       int      default 0                   null,
    creator      int      default 1                   null,
    editor       int      default 1                   null,
    created_date datetime default current_timestamp() null,
    updated_date datetime default current_timestamp() null
);

и сам ключ
SQL:
ALTER TABLE dle_myshows_genres
ADD CONSTRAINT myshows_genres_cat_id_dle_category_id_fk
FOREIGN KEY (cat_id)
REFERENCES dle_category(id)
    ON UPDATE CASCADE
ON DELETE SET NULL;

Получаю ошибку, что ключ не верно сформирован. гугл говорит, что таблицы нет. но она есть. в общем, я хз.
 
Код:
ALTER TABLE `dle_myshows_genres`
  ADD CONSTRAINT `dle_myshows_genres_cat_id` FOREIGN KEY (`cat_id`) REFERENCES `dle_category` (`id`);
 
Код:
ALTER TABLE `dle_myshows_genres`
  ADD CONSTRAINT `dle_myshows_genres_cat_id` FOREIGN KEY (`cat_id`) REFERENCES `dle_category` (`id`);
[HY000][1005] Can't create table `dle152`.`dle_myshows_genres` (errno: 150 "Foreign key constraint is incorrectly formed")
Но, она есть
1657045176002

и да, таблицы в InnoDB
 
dle_category id mediumint(8) auto_increment dle_myshows_genres cat_id int default 0 null,
Сделай для начала одинакового типа и длины
 
И cat_id индекс сделай)
 
Статус
Закрыто для дальнейших ответов.

Пользователи, просматривающие данную тему

Верх