SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.02.2011 09:00:07

5na525
Участник
Зарегистрирован: 23.02.2011
Сообщений: 2

UPDATE во вспомгательной таблице

Не получается выполнить 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)

Неактивен

 

#2 24.02.2011 01:14:38

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: UPDATE во вспомгательной таблице

Видимо, Вы имели в виду SET ROLE_ID=1, ROLE='root', а не то, что
Вы написали (написали SET ROLE_ID=0).

Неактивен

 

#3 25.02.2011 04:45:44

5na525
Участник
Зарегистрирован: 23.02.2011
Сообщений: 2

Re: UPDATE во вспомгательной таблице

paulus написал:

Видимо, Вы имели в виду SET ROLE_ID=1, ROLE='root', а не то, что
Вы написали (написали SET ROLE_ID=0).

Спасибо помогли,
и в правду запрос был не верно составлен.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson