2015-02-03 5 views
0

У меня есть table1 с 3 колонками: id varchar(20), name, mother_id varchar(20). mother_id - это внешний ключ, относящийся к столбцу id в той же таблице.Как решить эту ошибку Constraints

Вот мой стол: Если бы я пытался обновить dog1 и изменить dog4 У меня есть эта ошибка

|id  |name |mother_id| 
|dog1 |my_dog | (null)  
|dog2 |my_dog2 | dog1  
|dog3 |my_dog3 | dog1 

:

Cannot delete or update a parent row: a foreign key constraint fails (`dogs`.`table1`, CONSTRAINT `FK_dogs1` FOREIGN KEY (`mother_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) 

Как решить эту проблему? Я использую wamp 2.0 h и Sqlyog предприятие.

+0

Вы должны предоставить запрошенный sql-запрос для отладки. – Darren

ответ

0

Вы не можете напрямую изменить значение Primary key, на которое ссылается значение Foreign key. но есть мульти способов изменить это один из способов является:

падение ключ ограничения внешнего и первичного ключа ->обновление значения (PK и FK) ->, а затем добавить первичный ключ и ограничение внешнего ключа снова

alter table table1 drop foreign key thenameofFK; 
alter table table1 drop primary key; 

update table1 
set id='dog4' 
where id='dog1'; 

update table1 
set mother_id='dog4' 
where mother_id='dog1'; 

alter table table1 add primary key(id); 
alter table table1 
add constraint thenameofFK 
foreign key(mother_id) 
references table1(id); 

также удалите PHP тег из вопроса, то я не вижу ни одного вопроса или содержание, связанное с PHP.

Смежные вопросы