powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / В 2х связанных таблицах хочу поменять тип на UNSIGNED
3 сообщений из 3, страница 1 из 1
В 2х связанных таблицах хочу поменять тип на UNSIGNED
    #39366464
mstdmstd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет,
В 2х связанных таблицах хочу поменять тип на UNSIGNED :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SET FOREIGN_KEY_CHECKS = 0;

alter TABLE `vendor_contacts` 
	change `vc_vendor_id` `vc_vendor_id` MEDIUMINT(8) UNSIGNED NOT NULL;
alter TABLE `vendors`
	change `vn_id` `vn_id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT;

SET FOREIGN_KEY_CHECKS = 1;


И получаю ошибку:
Код: sql
1.
SQL Error (1025): Error on rename of './zntral/#sql-40b_3' to './zntral/vendor_contacts' (errno: 150 - Foreign key constraint is incorrectly formed)


Таблица определена как :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE `vendor_contacts` (
	`vc_id` MEDIUMINT(8) NOT NULL AUTO_INCREMENT,
	`vc_vendor_id` MEDIUMINT(8) NOT NULL,
	`vc_person_name` VARCHAR(50) NOT NULL,
	`vc_person_description` VARCHAR(255) NOT NULL,
	`vc_phone` VARCHAR(50) NOT NULL,
	`vc_phone_description` VARCHAR(255) NOT NULL,
	`vc_person_email` VARCHAR(50) NOT NULL,
	`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
	`updated_at` DATETIME NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
	PRIMARY KEY (`vc_id`),
	UNIQUE INDEX `ind_vendors_have_types_vc_vendor_id_vc_person_name` (`vc_vendor_id`, `vc_person_name`),
	INDEX `ind_vendor_contacts_created_at` (`created_at`),
	CONSTRAINT `fk_vendor_contacts_vc_vendor_id` FOREIGN KEY (`vc_vendor_id`) REFERENCES `vendors` (`vn_id`) ON UPDATE NO ACTION ON DELETE NO ACTION

Или нужно не FOREIGN_KEY_CHECKS?

автор5.7.13-0ubuntu0.16.04.2

Спасибо!
...
Рейтинг: 0 / 0
В 2х связанных таблицах хочу поменять тип на UNSIGNED
    #39366480
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FOREIGN_KEY_CHECKS относится к проверке данных, но не к соответствию структуры. Придётся дропать констрейнт и после изменения типа снова устанавливать. Заодно будет проведена дополнительная проверка целостности ссылочных данных.
...
Рейтинг: 0 / 0
В 2х связанных таблицах хочу поменять тип на UNSIGNED
    #39366802
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mstdmstd
Код: sql
1.
ON UPDATE NO ACTION ON DELETE NO ACTION

На всякий случай - вы в курсе, что в данном случае NO ACTION эквивалентно RESTRICT, т.е. "запретить", а вовсе не "ничего не делать" как можно было бы подумать по тексту?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / В 2х связанных таблицах хочу поменять тип на UNSIGNED
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]