Ключ существует в таблице, но показывает, не может удалить внешний ключ в MySQL - PullRequest
0 голосов
/ 02 июня 2018

Результат "SHOW CREATE TABLE order_products" равен

CREATE TABLE `order_products` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `quantity` int(11) NOT NULL,
 `price` double DEFAULT NULL,
 `amount` double(8,2) NOT NULL,
 `product_id` int(10) unsigned NOT NULL,
 `tax_id` int(10) unsigned DEFAULT NULL,
 `discount_id` int(10) unsigned DEFAULT NULL,
 `order_id` int(10) unsigned DEFAULT NULL,
 `username` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
 `shop_name` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
 `created_at` timestamp NULL DEFAULT NULL,
 `updated_at` timestamp NULL DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `order_products_product_id_foreign` (`product_id`),
 KEY `order_products_tax_id_foreign` (`tax_id`),
 KEY `order_products_discount_id_foreign` (`discount_id`),
 KEY `order_products_order_id_foreign` (`order_id`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 
COLLATE=utf8mb4_unicode_ci

И я пытаюсь удалить мой ключ "order_products_product_id_foreign" на

ALTER TABLE order_products DROP FOREIGN KEY order_products_product_id_foreign

Но это дает мне ошибку

#1091 - Can't DROP 'order_products_product_id_foreign'; check that column/key exists

Ответы [ 2 ]

0 голосов
/ 09 августа 2018

Это не внешний ключ.так выполни строку.

ALTER TABLE order_products DROP KEY order_products_product_id_foreign
0 голосов
/ 02 июня 2018

Здесь не нужно указывать ключевое слово FOREIGN KEY.

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