Назад | Перейти на главную страницу

Ошибка ограничения внешнего ключа 1005, ошибка 121

Я ломаю голову, пытаясь создать эту таблицу. Другие таблицы прекрасно работают в mariadb 10 с аналогичными ограничениями. Я безуспешно запускал его через отладчики.

ERROR 1005 (HY000) at line 401 in file: '/usr/share/doc/dbmail/examples/create_tables.mysql': Can't create table `dbmail`.`dbmail_auto_replies` (errno: 121 "Duplicate key on write or update")

DROP TABLE IF EXISTS `dbmail_users`;
CREATE TABLE `dbmail_users` ( 
   `user_idnr` bigint(20) UNSIGNED NOT NULL auto_increment, 
   `userid` varchar(255) NOT NULL default '',
   `passwd` varchar(255) NOT NULL default '',
   `client_idnr` bigint(20) UNSIGNED NOT NULL default '0',
   `maxmail_size` bigint(20) NOT NULL default '0',
   `curmail_size` bigint(20) NOT NULL default '0',
   `maxsieve_size` bigint(20) NOT NULL default '0',
   `cursieve_size` bigint(20) NOT NULL default '0',
   `encryption_type` varchar(255) NOT NULL default '',
   `last_login` datetime NOT NULL default '1979-11-03 22:05:58',
   PRIMARY KEY  (`user_idnr`),
   UNIQUE KEY `userid_index` (`userid`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS dbmail_auto_notifications;                        CREATE TABLE dbmail_auto_notifications (
        user_idnr bigint(20) UNSIGNED NOT NULL,
        notify_address varchar(100) NOT NULL default '',
        INDEX user_idnr_index (user_idnr),
        FOREIGN KEY user_idnr_fk (user_idnr)
                REFERENCES dbmail_users (user_idnr) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS dbmail_auto_replies; CREATE TABLE dbmail_auto_replies (
        user_idnr bigint(20) UNSIGNED DEFAULT '0' NOT NULL,
        start_date DATETIME NOT NULL,
        stop_date DATETIME NOT NULL,
        reply_body MEDIUMTEXT,
        INDEX user_idnr_index (user_idnr),
        FOREIGN KEY user_idnr_fk (user_idnr)
                REFERENCES dbmail_users (user_idnr) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE InnoDB DEFAULT CHARSET=utf8;

Любая помощь приветствуется.

попробуйте использовать разные имена для внешних ключей, в обоих случаях у вас user_idnr_fk. когда я менял имена, создавались таблицы.