Я только что обновил свою локальную среду разработки, которая использует XAMPP, а новая версия XAMPP использует MariaDB , тогда как старая версия, на которой я работал, использовала MySQL , что у меня нормальнос.
Теперь я подумал, что MariaDB должен был быть полностью совместим с MySQL, поскольку это, по сути, просто замена, но у меня были проблемы с импортом базы данных, которую я экспортировал прямо из MySQL перед обновлением.
Я получаю следующую ошибку:
Query:
/*Table structure for table `blm_wc_download_log` */
CREATE TABLE `blm_wc_download_log` (
`download_log_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`timestamp` datetime NOT NULL,
`permission_id` bigint(20) unsigned NOT NULL,
`user_id` bigint(20) unsigned DEFAULT NULL,
`user_ip_address` varchar(100) COLLATE utf8mb4_unicode_520_ci DEFAULT '',
PRIMARY KEY (`download_log_id`),
KEY `permission_id` (`permission_id`),
KEY `timestamp` (`timestamp`),
CONSTRAINT `fk_blm_wc_download_log_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `blm_woocommerce_downloadable_product_permissions` (`permission_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci
Error occured at:2019-02-26 05:30:20
Line no.:9919
Error Code: 1005 - Can't create table `my-db`.`blm_wc_download_log` (errno: 150 "Foreign key constraint is incorrectly formed")
Вот blm_woocommerce_downloadable_product_permissions
:
CREATE TABLE `blm_woocommerce_downloadable_product_permissions` (
`permission_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`download_id` varchar(36) COLLATE utf8mb4_unicode_520_ci NOT NULL,
`product_id` bigint(20) unsigned NOT NULL,
`order_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`order_key` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,
`user_email` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,
`user_id` bigint(20) unsigned DEFAULT NULL,
`downloads_remaining` varchar(9) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
`access_granted` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`access_expires` datetime DEFAULT NULL,
`download_count` bigint(20) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`permission_id`),
KEY `download_order_key_product` (`product_id`,`order_id`,`order_key`(16),`download_id`),
KEY `download_order_product` (`download_id`,`order_id`,`product_id`),
KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
Может быть, потому что blm_woocommerce_downloadable_product_permissions
создается дальше вниз в файле, в котором он ошибается, потому что считает, что таблица не существует?Но, говоря это, у меня никогда не было проблем с импортом SQL-дампа этой базы данных в MySQL.
В чем здесь проблема?Может также придерживаться MySQL, если будут проблемы с совместимостью ...