Не получается выполнить UPDATE записи в таблице INCLUDE_ROLES
"CREATE TABLE USERS ( "
"ID INTEGER AUTO_INCREMENT NOT NULL, "
"NAME VARCHAR(50), "
"PASSWORD VARCHAR(50), "
"LOCAL_GROUP VARCHAR(50), "
"PRIMARY KEY(ID, NAME) "
") ENGINE=INNODB;";
"CREATE TABLE ROLES ( "
"ID INTEGER AUTO_INCREMENT NOT NULL, "
"NAME VARCHAR(50), "
"INFO VARCHAR(50), "
"PRIMARY KEY(ID, NAME) "
") ENGINE=INNODB;";
"CREATE TABLE INCLUDE_ROLES ( "
"ID INTEGER AUTO_INCREMENT NOT NULL, "
"USER_ID INTEGER, "
"USER_NAME VARCHAR(50), "
"ROLE_ID INTEGER, "
"ROLE VARCHAR(50), "
"PRIMARY KEY(ID) "
"INDEX (USER_ID, USER_NAME), "
"FOREIGN KEY (USER_ID, USER_NAME) "
"REFERENCES USERS(ID, NAME), "
"INDEX (ROLE_ID, ROLE), "
"FOREIGN KEY (ROLE_ID, ROLE) "
"REFERENCES ROLES(ID, NAME)"
") ENGINE=INNODB;";
Запрос "UPDATE INCLUDE_ROLES SET ROLE_ID='1' && ROLE='root' WHERE ROLE_ID='2' && ROLE='adm';" выдаёт ошибку
cannot create or update a child row: a foreign key constraint fails
(`TESTDB`.`INCLUDE_ROLES`,CONSTRAINT`INCLUDE_ROLES_ibfk_2` FOREIGN_KEY (`ROLE_ID`,`ROLE`)
REFERENCES`ROLES`(`ID`.`NAME`))
хотя запись ROLE_ID и ROLE соответсвуют записям ID и NAME в таблице из которой выбираются(ROLES).
Отредактированно 5na525 (23.02.2011 09:01:14)