DROP CONSTRAINT не может найти ограничение

0

Я пытаюсь отбросить ограничение:

USE 'mydb';

BEGIN;
ALTER TABLE 'mydb' DROP CONSTRAINT 'myconstraint';
COMMIT;

И он отвечает:

ERROR 1091 (42000) at line 6: Can't DROP CONSTRAINT 'myconstraint'; check that it exists

Но ограничение существует:

MariaDB [(mydb)]> select * from information_schema.table_constraints WHERE table_name = 'mytable';
+--------------------+-------------------+---------------------------------------------------------------+--------------+-----------------+-----------------+
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME                                               | TABLE_SCHEMA | TABLE_NAME      | CONSTRAINT_TYPE |
+--------------------+-------------------+---------------------------------------------------------------+--------------+-----------------+-----------------+
| def                | mydb              | PRIMARY                                                       | mydb         | mytable         | PRIMARY KEY     |
| def                | mydb              | name                                                          | mydb         | mytable         | UNIQUE          |
| def                | mydb              | myconstraint                                                  | mydb         | mytable         | FOREIGN KEY     |
+--------------------+-------------------+---------------------------------------------------------------+--------------+-----------------+-----------------+

Что я делаю неправильно?

Теги:
mariadb

2 ответа

1

Я думаю, что вы путаете "схема" (она же "база данных") и "таблица"): ALTER TABLE mytable...

  • 0
    Мое ограничение на столе. Я могу найти ограничение, но не могу его отбросить.
  • 0
    Попробуйте USE mydb; ALTER TABLE mytable DROP CONSTRAINT myconstraint;
Показать ещё 1 комментарий
0

Проблема в том, что MariaDB (MySql?) Не позволяет удалять ограничения внешнего ключа с помощью синтаксиса DROP CONSTRAINT. Это должно быть сброшено так:

ALTER TABLE 'mytable' DROP FOREIGN KEY 'myconstraint';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню