문제

모두 MySQL에 다음과 같은 '사용자'테이블이 있습니다.

 CREATE TABLE `users` (
  `uid` int(11) NOT NULL auto_increment,
  `fname` varchar(50) NOT NULL,
  `lname` varchar(50) NOT NULL,
  `role` varchar(75) NOT NULL,
  `region` tinyint(4) unsigned default NULL,
  `username` varchar(25) NOT NULL,
  `password` varchar(75) NOT NULL,
  `new_pass` varchar(5) default NULL,
  PRIMARY KEY  (`uid`),
  UNIQUE KEY `username` (`username`),
  KEY `role` (`role`),
  KEY `region` (`region`),
  CONSTRAINT `users_ibfk_3` FOREIGN KEY (`role`) REFERENCES `role` (`role`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `users_ibfk_4` FOREIGN KEY (`region`) REFERENCES `region` (`region`) ON DELETE CASCADE ON UPDATE CASCADE
 ) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8

나는 '지역'이 지역 테이블에 대한 외국 키로 설정되어 있습니다 - 지역. 지역 '

해당 사용자. 지역은 NULL로 선언됩니다. 나는 MySQL에서 열쇠가 null이 아닌 것으로 설정된 경우에만 외국 키 contstraint가 시행된다는 인상을 받았습니다.

그러나 PHP 응용 프로그램에 널 영역이있는 사용자를 삽입하려고하면 다음과 같은 오류가 발생합니다.

 ERROR: Cannot add or update a child row: a foreign key constraint fails (`reslife4/users`, CONSTRAINT `users_ibfk_4` FOREIGN KEY (`region`) REFERENCES `region` (`region`) ON DELETE CASCADE ON UPDATE CASCADE)

그러나 PHPMyAdmin과 같은 PHP 응용 프로그램 외부 에이 사용자를 추가하려면이 사용자를 추가하면 가능합니다.

무슨 일이 일어나고 있는지 아는 사람이 있습니까?

도움이 되었습니까?

해결책

귀하의 신청서는NULL 가치 region.

활성화 쿼리 로그 그리고 정확히 당신의 것이 무엇인지 확인하십시오 PHP 테이블에 삽입하려고합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top