Задавайте вопросы, мы ответим
Вы не зашли.
Есть таблицы
user
user_id INTEGER
user_login VARCHAR
group
group_id INTEGER
group_name VARCHAR
usergroup
usergroup_id INTEGER
usergroup_user_id INTEGER
usergroup_group_id INTEGER
Хочу удалить пользователя (из user) и его связки с группами (из usergroup).
Пробую так DELETE `user`, `usergroup` FROM `user`, `usergroup` WHERE `usergroup_user_id`=`user_id` AND `user_id`='1'
не получается - не удаляет пользователя (может потому что для него связок нет).
Помогите составить правильный запрос.
Неактивен
verybadbug написал:
Пробую так DELETE `user`, `usergroup` FROM `user`, `usergroup` WHERE `usergroup_user_id`=`user_id` AND `user_id`='1'
не получается - не удаляет пользователя (может потому что для него связок нет).
Так вроде вообще нельзя.
Можно в два запроса, например:
Отредактированно deadka (19.04.2011 08:08:23)
Неактивен
спасибо за ответ... только пара вопросов появились
1. данную конструкцию (ON DELETE CASCADE) поддерживают только InnoDB-таблицы?
2. в какой версии MySQL появилась эта конструкция
Неактивен
Судя по мануалу
Foreign keys definitions are subject to the following conditions:
Both tables must be InnoDB tables and they must not be TEMPORARY tables.
Да, обе только InnoDB, не temporary таблички.
13.2.5.4. FOREIGN KEY Constraints
Starting from MySQL 3.23.44, InnoDB features foreign key constraints.
Возможность появилась начиная с 3.23.44, так что использовать можно смело .
Отредактированно deadka (19.04.2011 13:47:56)
Неактивен
можно использовать LEFT JOIN для этого случая.
Отредактированно avgsoft (19.04.2011 15:23:34)
Неактивен
avgsoft то, что нужно!
даже не думал, что в DELETE можно использовать такую конструкцию...
Неактивен