如何解决此约束错误

时间:2015-02-03 03:45:31

标签: php mysql database

table1有3列:id varchar(20)namemother_id varchar(20)mother_id是指向同一表中id列的外键。

这是我的表:

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

如果我尝试更新dog1并更改dog4,则会出现此错误:

 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 hSqlyog企业。

2 个答案:

答案 0 :(得分:0)

您无法直接更改Primary key值引用的Foreign key值。 但有多种方法可以改变它:

删除外键约束和主键 - &gt; 更新值(PK和FK) - &gt; < / strong>然后再次添加主键和外键约束

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相关的问题或内容。

答案 1 :(得分:0)

您必须在php myadmin中进行更改,删除外键约束和主键->更新值(PK和FK)->然后再次添加主键和外键约束