Подтвердить что ты не робот

Помощь с: ERROR 1025 (HY000): ошибка при переименовании.... (errno: 150)

Я получаю эту ошибку, когда пытаюсь запустить команду alter table для удаления столбца: ОШИБКА 1025 (HY000): ошибка при переименовании.... (errno: 150).

Если я правильно понимаю, это проблема с внешним ключом, но я не знаю, как это исправить. Кто-нибудь будет так добр и расскажет мне, как заставить его работать.

Код, используемый для создания таблицы:

CREATE TABLE categories(
cid INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
assets_id INT NOT NULL,
cat_name VARCHAR(30) NOT NULL,
INDEX(assets_id),
FOREIGN KEY (assets_id) REFERENCES asset(aid) ON UPDATE CASCADE

)
ENGINE=INNODB DEFAULT CHARSET=utf8;

Команда alter:

ALTER TABLE categories DROP COLUMN assets_id;

Категории таблицы полностью пусты. Таким образом, нет информации о том, чтобы устанавливать ограничения CASCADE. Так вы могли бы мне помочь, какое волшебство мне нужно для удаления столбца assets_id. Спасибо.

4b9b3361

Ответ 1

Используйте SHOW CREATE TABLE categories, чтобы показать имя ограничения.

Скорее всего, это будет categories_ibfk_1

Используйте имя, чтобы сначала удалить внешний ключ и столбец:

ALTER TABLE categories DROP FOREIGN KEY categories_ibfk_1;
ALTER TABLE categories DROP COLUMN assets_id;

Ответ 2

Для меня проблема была другая:

Сайт был (случайно) доступен для всех. Поэтому обновление script было запущено несколько раз. Это вызвало условия гонки, которые порождали такие ошибки.

- > Убедитесь, что сайт получает доступ только один раз, до тех пор, пока не закончится каждый script!