2016-11-02 4 views
0

У меня есть странное дело: Он работает:Невозможно переименовать таблицу

rename table `test` to `test3` 

, но это не работает:

rename table `test` to `test1` 

Ошибка при переименовании (егто: 150 - ограничение внешнего ключа неверно )

ОБНОВЛЕНИЕ:

Я установил:

SET FOREIGN_KEY_CHECKS=0; 

У меня нет внешних ключей

enter image description here

CREATE TABLE `test` (`agglomeration_id` int(11) NOT NULL, `carpark_id` int(11) NOT NULL, `numer_urzadzenia` char(3) NOT NULL, 
         `payments_zone` char(1) DEFAULT NULL, `status` tinyint(1) DEFAULT NULL, `time_stamp` bigint(20) DEFAULT NULL, 
         `resource_uri` char(200) DEFAULT NULL, `test` int(1) NOT NULL, PRIMARY KEY (`test`)) 
    ENGINE=InnoDB DEFAULT CHARSET=utf8 
+1

таблицы имеют ограничение внешнего ключа с именем Ли 'test1'? –

+0

Добавьте внешние ключи, связанные с этой таблицей, пожалуйста – rbr94

ответ

0

Вы добавили внешний ключ к колонке тестовой таблицы, так что это означает, что вы необходимо отказаться от ограничений перед их переименованием или, возможно, отключить ограничения внешнего ключа и после этого переименовать его.

для MySQL попробовать:

SET FOREIGN_KEY_CHECKS=0; --> Temporary disables foreign key constraints 

для SQL попытки:

EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all" --> Disable foreign key constraints 
+0

Точный запрос работал в моем MySQL. Я написал имена таблиц без кавычек. –

+0

Я говорю о запросах создания таблицы и ее переименовании. –

+1

SELECT DISTINCT (constraint_name) FROM information_schema.table_constraints WHERE constraint_schema = 'test1' ORDER BY constraint_name ASC; –