Пытаюсь добавить свойство авто-инкрементирования в таблицу person для поля person_id: Запрос ниже.
ALTER TABLE person MODIFY person_id SMALLINT(5) UNSIGNED AUTO_INCREMENT;
Но ошибка: ERROR 1833 (HY000): Cannot change column 'person_id': used in a foreign key constraint 'pk_person_id' of table 'glava.favourite_food'
mysql>
table person:
+-------------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------------------+------+-----+---------+-------+
| person_id | smallint(5) unsigned | NO | PRI | NULL | |
| fname | varchar(20) | YES | | NULL | |
| lname | varchar(20) | YES | | NULL | |
| gender | enum('M','F') | YES | | NULL | |
| birth_date | date | YES | | NULL | |
| address | varchar(30) | YES | | NULL | |
| city | varchar(20) | YES | | NULL | |
| state | varchar(20) | YES | | NULL | |
| country | varchar(20) | YES | | NULL | |
| postal_code | varchar(20) | YES | | NULL | |
+-------------+----------------------+------+-----+---------+-------+
table favourite_food:
+-----------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------------------+------+-----+---------+-------+
| person_id | smallint(5) unsigned | NO | PRI | NULL | |
| food | varchar(20) | NO | PRI | NULL | |
+-----------+----------------------+------+-----+---------+-------+
Почему нельзя изменить и каким образом этого все-таки добиться?
Перед выполнением альтера отключите проверку внешних ключей:
SET FOREIGN_KEY_CHECKS = 0;
А после альтера верните назад:
SET FOREIGN_KEY_CHECKS = 1;
Проверял вот такими запросами в отладчике:
drop table if exists favourite_food_1012533;
drop table if exists person_1012533;
create table person_1012533 (
person_id SMALLINT UNSIGNED,
PRIMARY KEY (person_id)
) ENGINE=INNODB;
create table favourite_food_1012533 (
id INT,
person_id SMALLINT UNSIGNED,
INDEX person_id_idx (person_id),
FOREIGN KEY (person_id) REFERENCES person_1012533(person_id) ON DELETE CASCADE
) ENGINE=INNODB;
SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE person_1012533 MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT;
SET FOREIGN_KEY_CHECKS = 1;
show create table person_1012533;
Всё ОК!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Зашёл я в PHPMyAmin — было всё нормально
Уважаемые знатоки, внимание вопрос : Как убрать из submenu все эти дивы и i, и заменить на ссылки?
Имеется массив строкПользователь вводит число строк для разбиения и создаются файлы