Bu hatayı, tablomu değiştirmeye çalışırken aldım.Yabancı anahtar kısıtlaması kullanılan sütun değiştirilemiyor
Error Code: 1833. Cannot change column 'person_id': used in a foreign key constraint 'fk_fav_food_person_id' of table 'table.favorite_food'
İşte benim CREATE TABLE STATEMENT'im başarıyla çalıştı.
CREATE TABLE favorite_food(
person_id SMALLINT UNSIGNED,
food VARCHAR(20),
CONSTRAINT pk_favorite_food PRIMARY KEY(person_id,food),
CONSTRAINT fk_fav_food_person_id FOREIGN KEY (person_id)
REFERENCES person (person_id)
);
Daha sonra bu ifadeyi çalıştırmayı denedim ve yukarıdaki hatayı aldım.
ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT;
Bunun için bir işlem kullanmayı unutmayın. Aksi halde veritabanınız bozulabilir. –
İyi nokta, ne yazık ki MySQL, DDL ifadeleri etrafındaki işlemleri desteklemiyor. Açık işlemler bir DDL sorgusu yürütülmeden önce yapılır. Bkz. Http://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html –
@FrancoisBourgeois: Bana bu satırda daha fazla bilgi verir misiniz? yabancı anahtar alan ve referans tanımı – theJava