Как импортировать таблицу, которая была удалена с помощью внешних ключей? - PullRequest
0 голосов
/ 12 июля 2019

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

Я пытался создать только таблицу с 2-мя диаграммами с именем и идентификатором, но она не работает, также выдает ошибку, что неправильно сформировано ограничение внешнего ключа.

CREATE TABLE `companies` (
`id` int(10) UNSIGNED NOT NULL,
`company_name` varchar(191) COLLATE utf8_unicode_ci NOT NULL,
`company_email` varchar(191) COLLATE utf8_unicode_ci NOT NULL,
`company_phone` varchar(191) COLLATE utf8_unicode_ci NOT NULL,
`logo` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`login_background` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`address` text COLLATE utf8_unicode_ci NOT NULL,
`website` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`currency_id` int(10) UNSIGNED DEFAULT NULL,
`package_id` int(10) UNSIGNED DEFAULT NULL,
`package_type` enum('monthly','annual') COLLATE utf8_unicode_ci NOT NULL 
 DEFAULT 'monthly',
 `timezone` varchar(191) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Asia/Kolkata',
 `date_format` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'd-m-Y',
 `time_format` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'h:i a',
 `locale` varchar(191) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'en',
 `latitude` decimal(10,8) NOT NULL DEFAULT 26.91243360,
 `longitude` decimal(11,8) NOT NULL DEFAULT 75.78727090,
 `leaves_start_from` enum('joining_date','year_start') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'joining_date',
 `active_theme` enum('default','custom') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'default',
 `status` enum('active','inactive','license_expired') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'active',
 `last_updated_by` int(10) UNSIGNED DEFAULT NULL,
 `created_at` timestamp NULL DEFAULT NULL,
 `updated_at` timestamp NULL DEFAULT NULL,
 `stripe_id` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
 `card_brand` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
 `card_last_four` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
 `trial_ends_at` timestamp NULL DEFAULT NULL,
 `licence_expire_on` date DEFAULT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Сообщение об ошибке:

(Error: 150 "Foreign key constraint is incorrectly formed")

1 Ответ

0 голосов
/ 12 июля 2019

Сначала нужно получить все внешние ключи таблицы "Comapanies", используя этот запрос .

Затем сбросьте все внешние ключи

ALTER TABLE `companies`
    DROP FOREIGN KEY `id_name_fk`;

Затем выполните оператор создания таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...