如何导入用外键删除的表?

时间:2019-07-12 01:30:00

标签: mysql sql phpmyadmin

我从服务器上删除了一个名为“ companies”的表,该表具有外键,并且与其他表也有关系。现在,我尝试使用下载的备份再次导入该表,但是会引发错误的外键格式错误

我试图仅创建带有2个图表的表的名称和ID,但是它不起作用,还会引发外键约束格式错误的错误。

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 :(得分:0)

首先是使用此query获取“ Comapanies”表的所有外键。

然后删除所有外键

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

然后执行您的create table语句