Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обновление по внешнему ключу
 
 автор: Slo_Nik   (27.05.2014 в 13:09)   письмо автору
 
 

День добрый.
Есть две таблицы, "товары(mtrl_goods)" и "общие данные(mtrl_joint)".
Структура таблиц:

<?php
CREATE TABLE 
IF NOT EXISTS `mtrl_goods`(
                                         `
id_goodsINT(3NOT NULL AUTO_INCREMENT,
                                         
# разные поля
                                         
`sh`       INT(2) DEFAULT NULL,
                                         
# разные поля
                                         
PRIMARY KEY(`id_goods`),
                                         
KEY `sh`(`sh`)
                                       )
ENGINE=InnoDB DEFAULT CHARSET="utf8";

CREATE TABLE IF NOT EXISTS `mtrl_joint`(
                                         `
id_joint`    INT(3NOT NULL AUTO_INCREMENT,
                                          
# разные поля
                                         
`sh`          INT(2) DEFAULT NULL,
                                         `
id_goods`    INT(3NULL#id товара  
                                         
PRIMARY KEY(`id_joint`),
                                         
KEY `sh`(`sh`)
                                         
FOREIGN KEY (`id_goods`) REFERENCES `mtrl_goods`(`id_goods`)
                                           
ON DELETE CASCADE,
                                         
FOREIGN KEY (`sh`) REFERENCES `mtrl_goods`(`sh`)
                                           
ON UPDATE CASCADE
                                       
)ENGINE=InnoDB DEFAULT CHARSET="utf8";


Родительская таблица "mtrl_goods", дочерняя "mtrl_joint"

Таблицы создаются и всё работает без проблем, за одним исключением

Если я удаляю или обновляю запись (поле sh) в родительской таблице, то в дочерней записи удаляются или обновляются записи (поле sh).
Если я удаляю записи в дочерней таблице, то удаление проходит без ошибок, но если я пытаюсь обновить поле sh у одной из записей, то возникает ошибка "1452 Cannot add or update a child row: a foreign key constraint fails"

Подскажите, как можно сделать так, что бы в дочерней таблице можно было обновлять поле sh у отдельно взятой записи, но при этом при обновлении записи в родительской таблице обновлялось поле sh у всех записей в дочерней?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования