ALTER TABLE forum_for_kategory
ADD FOREIGN KEY (id_kategory)
REFERENCES forum_kategory_table(id)
Когда делаю запрос на добавление новой записи: (Там же в консоли)
INSERT INTO `forum_for_kategory` SET `name_for_kategory`='Основная под категория', `position`='1', `id_kategory`='1', `description`='Описаня под категории';
И валит мне ошибку:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`test`.`forum_for_kategory`, CONSTRAINT `forum_for_kategory_ibfk_1` FOREIGN KEY (`id_kategory`) REFERENCES `forum_kategory_table` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
Вот такая фигня.. С чего бы это?
Спустя 2 минуты, 26 секунд (30.11.2011 - 17:04) RCuPeR написал(а):
Явно неверно связь сделал.
Спустя 1 минута, 1 секунда RCuPeR написал(а):
Попробуй поставить сюда: id_kategory NULL по умолчанию.
Спустя 1 минута, 1 секунда RCuPeR написал(а):
Попробуй поставить сюда: id_kategory NULL по умолчанию.
Спустя 2 минуты, 24 секунды (30.11.2011 - 17:07) Ramzil_Nixon написал(а):
RCuPeR
Еще и такая есть вот:
Еще и такая есть вот:
ALTER TABLE forum_for_kategory
ADD FOREIGN KEY (id_kategory)
REFERENCES forum_kategory_table(id)
ON UPDATE CASCADE
ON DELETE CASCADE ;
Спустя 2 минуты, 37 секунд (30.11.2011 - 17:09) RCuPeR написал(а):
Цитата |
Попробуй поставить сюда: id_kategory NULL по умолчанию. |
Спустя 27 секунд (30.11.2011 - 17:10) Ramzil_Nixon написал(а):
Цитата (RCuPeR @ 30.11.2011 - 14:04) |
id_kategory NULL |
А этот NULL куда сунуть, я чет не понял
Спустя 1 минута, 52 секунды (30.11.2011 - 17:12) RCuPeR написал(а):
Ну, для поля id_kategory установи значение по умолчанию NULL.
Покажи полную структуру обеих таблиц.
Покажи полную структуру обеих таблиц.
Спустя 1 минута, 32 секунды (30.11.2011 - 17:13) Ramzil_Nixon написал(а):
CREATE TABLE `test`.`forum_kategory_table` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name_forum_kategory` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
`position_forum_kategory` INT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = INNODB;
CREATE TABLE `test`.`forum_for_kategory` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name_for_kategory` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
`position` INT NOT NULL ,
`id_kategory` INT NOT NULL ,
`description` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = INNODB;
Вот структуры таблиц,
А это запрос на связь таблиц
ALTER TABLE forum_for_kategory
ADD FOREIGN KEY (id_kategory)
REFERENCES forum_kategory_table(id)
ON UPDATE CASCADE
ON DELETE CASCADE ;
Спустя 3 минуты, 32 секунды (30.11.2011 - 17:17) RCuPeR написал(а):
Что это у тебя за кодировка такая ?
Вот, пробуй.
Вот, пробуй.
CREATE TABLE `test`.`forum_for_kategory` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name_for_kategory` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
`position` INT NOT NULL ,
`id_kategory` INT NULL ,
`description` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = INNODB;
Спустя 59 секунд (30.11.2011 - 17:18) Placido написал(а):
А у тебя в таблице forum_kategory_table есть запись с id = 1?
Спустя 2 минуты, 41 секунда (30.11.2011 - 17:20) Ramzil_Nixon написал(а):
Цитата (RCuPeR @ 30.11.2011 - 14:17) |
Что это у тебя за кодировка такая ? Вот, пробуй. |
Кодировка UTF-8
.
Нет по прежнему так
Спустя 30 секунд (30.11.2011 - 17:21) Ramzil_Nixon написал(а):
Цитата (Placido @ 30.11.2011 - 14:18) |
А у тебя в таблице forum_kategory_table есть запись с id = 1? |
Да есть
Спустя 1 минута, 33 секунды (30.11.2011 - 17:22) RCuPeR написал(а):
Точно ту же ошибку выдает ?
Давай все, структуру и дамп по минимуму.
Давай все, структуру и дамп по минимуму.
Спустя 1 минута, 36 секунд (30.11.2011 - 17:24) Ramzil_Nixon написал(а):
Цитата (RCuPeR @ 30.11.2011 - 14:22) |
дамп |
Глупый наверное вопрос.. Но что такое дамп?
#1452 - Cannot add or update a child row: a foreign key constraint fails (`test`.`forum_for_kategory`, CONSTRAINT `forum_for_kategory_ibfk_1` FOREIGN KEY (`id_kategory`) REFERENCES `forum_kategory_table` (`id`))
А ошибка вот такая
CREATE TABLE `test`.`forum_kategory_table` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name_forum_kategory` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
`position_forum_kategory` INT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = INNODB;
CREATE TABLE `test`.`forum_for_kategory` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name_for_kategory` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
`position` INT NOT NULL ,
`id_kategory` INT NULL ,
`description` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = INNODB;
Спустя 4 минуты, 16 секунд (30.11.2011 - 17:28) RCuPeR написал(а):
Дамп - наличие записей в таблице. Иными словами - бэкап.
Давай все, что есть. Буду у себя ковырять.
Давай все, что есть. Буду у себя ковырять.
Спустя 2 минуты, 11 секунд (30.11.2011 - 17:30) Ramzil_Nixon написал(а):
CREATE TABLE `test`.`forum_kategory_table` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name_forum_kategory` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
`position_forum_kategory` INT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = INNODB;
Здесь есть одна запись:
NSERT INTO `forum_kategory_table`
SET `name_forum_kategory` = 'Первая категория форума',
`position_forum_kategory` = '1';
После чего создал связь. И не могу сюда добавить запись:
CREATE TABLE `test`.`forum_for_kategory` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name_for_kategory` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
`position` INT NOT NULL ,
`id_kategory` INT NOT NULL ,
`description` VARCHAR( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = INNODB;
Спустя 6 минут, 22 секунды (30.11.2011 - 17:37) RCuPeR написал(а):
У меня прошел вот такой запрос:
INSERT INTO `romanzorin`.`forum_for_kategory` (
`id` ,
`name_for_kategory` ,
`position` ,
`id_kategory` ,
`description`
)
VALUES (
NULL , 'имя', '1', '1', 'описание'
);
Спустя 2 минуты, 25 секунд (30.11.2011 - 17:39) RCuPeR написал(а):
Все работает.
--
-- Структура таблицы `forum_kategory_table`
--
CREATE TABLE IF NOT EXISTS `forum_kategory_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_forum_kategory` varchar(255) NOT NULL,
`position_forum_kategory` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Дамп данных таблицы `forum_kategory_table`
--
INSERT INTO `forum_kategory_table` (`id`, `name_forum_kategory`, `position_forum_kategory`) VALUES
(1, 'Первая категория форума', 1);
--
-- Структура таблицы `forum_for_kategory`
--
CREATE TABLE IF NOT EXISTS `forum_for_kategory` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_for_kategory` varchar(255) NOT NULL,
`position` int(11) NOT NULL,
`id_kategory` int(11) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- Дамп данных таблицы `forum_for_kategory`
--
INSERT INTO `forum_for_kategory` (`id`, `name_for_kategory`, `position`, `id_kategory`, `description`) VALUES
(1, 'бла-бла-бла', 1, 1, 'вфыв'),
(2, 'бла-бла2-бла', 1, 0, '2вфыв'),
(3, 'бла-бла-бла', 0, 0, 'вфыв');
Спустя 2 минуты (30.11.2011 - 17:41) RCuPeR написал(а):
Ой, стоп... Я пробаранил.
Между какими полями связь нужно установить ?
я так понимаю: `forum_kategory_table`.`id` и `forum_for_kategory`.`id_kategory` ?
Между какими полями связь нужно установить ?
я так понимаю: `forum_kategory_table`.`id` и `forum_for_kategory`.`id_kategory` ?
Спустя 2 минуты, 37 секунд (30.11.2011 - 17:44) Ramzil_Nixon написал(а):
Цитата |
я так понимаю: `forum_kategory_table`.`id` и `forum_for_kategory`.`id_kategory` ? |
Да правильно.
"forum_kategory_table" это категории на форуме.
"forum_for_kategory" под категории. В случае если мы удалим категорию, чтобы все подкатегории которые входят в него тоже удалились.
Спустя 2 минуты, 22 секунды (30.11.2011 - 17:46) Ramzil_Nixon написал(а):
А если подкатегория удалилась, то все темы в этих категориях должен удалиться, а если темы удалились, то и все комментариии к тем темам.
Как минимум мне 4 таблицы надо соединить
Как минимум мне 4 таблицы надо соединить
Спустя 6 минут, 58 секунд (30.11.2011 - 17:53) RCuPeR написал(а):
Готово.
Айне момент битте. Сейчас выложу листинг.
Айне момент битте. Сейчас выложу листинг.
Спустя 4 минуты, 1 секунда (30.11.2011 - 17:57) RCuPeR написал(а):
--
-- Структура таблицы `forum_kategory_table`
--
CREATE TABLE IF NOT EXISTS `forum_kategory_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_forum_kategory` varchar(255) NOT NULL,
`position_forum_kategory` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Дамп данных таблицы `forum_kategory_table`
--
INSERT INTO `forum_kategory_table` (`id`, `name_forum_kategory`, `position_forum_kategory`) VALUES
(1, 'Первая категория форума', 1);
--
-- Структура таблицы `forum_for_kategory`
--
CREATE TABLE IF NOT EXISTS `forum_for_kategory` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_for_kategory` varchar(255) NOT NULL,
`position` int(11) NOT NULL,
`id_kategory` int(11) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_kategory` (`id_kategory`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
--
-- Дамп данных таблицы `forum_for_kategory`
--
INSERT INTO `forum_for_kategory` (`id`, `name_for_kategory`, `position`, `id_kategory`, `description`) VALUES
(4, 'имя', 123, 1, 'дескрипшин');
--
-- Ограничения внешнего ключа сохраненных таблиц
--
ALTER TABLE `forum_for_kategory` ADD INDEX ( `id_kategory` );
--
-- Ограничения внешнего ключа таблицы `forum_for_kategory`
--
ALTER TABLE `forum_for_kategory` ADD CONSTRAINT `tree_fk_1` FOREIGN KEY (`id_kategory`) REFERENCES `forum_kategory_table` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
Спустя 1 минута, 20 секунд (30.11.2011 - 17:58) RCuPeR написал(а):
Как-то форум неверно SQL комментарии форматирует
Спустя 1 минута, 50 секунд (30.11.2011 - 18:00) Ramzil_Nixon написал(а):
Wenn, wie Sie sich entschieden haben erklärt, es wäre cool
P.S. >> Если б обяснил ты мне как исправил было бы здорово Мне как бы еще 2 таблицы помимо этих придется связать
P.S. >> Если б обяснил ты мне как исправил было бы здорово Мне как бы еще 2 таблицы помимо этих придется связать
Спустя 1 минута, 40 секунд (30.11.2011 - 18:02) inpost написал(а):
Если я правильно понял, то ты сделал связь из одной таблице ко второй, по определённому полю, а значит в родителе должна уже содержаться запись с таким ID, (Id_parent), по которому делаешь связь, и к ней прикрепляется запись из дочерней таблицы связей. Они же связанные таблицы.
При своём добавлении ты связь не указываешь, видимо надо запись добавить во вторую таблицу, а в первой указать id со второй.
При своём добавлении ты связь не указываешь, видимо надо запись добавить во вторую таблицу, а в первой указать id со второй.
Спустя 4 минуты, 5 секунд (30.11.2011 - 18:06) RCuPeR написал(а):
У тебя не было индекса для:
Да и саму связку чуть не верно делал:
Inpost, все верно говорит. Только в теории. Практика и собственно, сам листинг, выше.
ALTER TABLE `forum_for_kategory` ADD INDEX ( `id_kategory` );
Да и саму связку чуть не верно делал:
ALTER TABLE `forum_for_kategory` ADD CONSTRAINT `tree_fk_1` FOREIGN KEY (`id_kategory`) REFERENCES `forum_kategory_table` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
Inpost, все верно говорит. Только в теории. Практика и собственно, сам листинг, выше.
Спустя 5 минут, 49 секунд (30.11.2011 - 18:12) Ramzil_Nixon написал(а):
CONSTRAINT `tree_fk_1`
Вот это у меня не было, я смотрю. А что это?
Спустя 3 минуты, 23 секунды (30.11.2011 - 18:15) RCuPeR написал(а):
Цитата (Ramzil_Nixon @ 30.11.2011 - 15:00) |
Wenn, wie Sie sich entschieden haben erklärt, es wäre cool |
Не пользуйся гугл переводчиком, он такой бред выдает.
Вернее будет так:
wenn du es mir erklären hättest wie man- es verbessert wäre echt cool.
Спустя 2 минуты, 12 секунд (30.11.2011 - 18:17) RCuPeR написал(а):
Цитата (Ramzil_Nixon @ 30.11.2011 - 15:12) |
CONSTRAINT `tree_fk_1` Вот это у меня не было, я смотрю. А что это? |
Это имя внешнего ключа на случай удаления или модификации.
Спустя 30 секунд (30.11.2011 - 18:18) Ramzil_Nixon написал(а):
Цитата (RCuPeR @ 30.11.2011 - 15:15) |
Вернее будет так: |
Это не гугл, это то что у меня в голове после школы осталось, да и переводчик еще
Спустя 35 секунд (30.11.2011 - 18:18) Ramzil_Nixon написал(а):
Цитата (RCuPeR @ 30.11.2011 - 15:17) |
Это имя внешнего ключа на случай удаления или модификации. |
А это постоянно так останеться, или будет меняться?
Спустя 3 минуты, 37 секунд (30.11.2011 - 18:22) RCuPeR написал(а):
Цитата (Ramzil_Nixon @ 30.11.2011 - 15:18) | ||
А это постоянно так останеться, или будет меняться? |
Не понял, что ты имеешь введу ?
Имя ты можешь указать любое, это не важно. Но оно должно быть.
Спустя 5 минут, 40 секунд (30.11.2011 - 18:28) Ramzil_Nixon написал(а):
Понятно
Спустя 1 минута, 36 секунд (30.11.2011 - 18:29) RCuPeR написал(а):
Цитата (Ramzil_Nixon @ 30.11.2011 - 15:28) |
Понятно |
Трудись.
Кстати, если точно помогло можно и карму повысить
Спустя 3 минуты, 19 секунд (30.11.2011 - 18:33) Ramzil_Nixon написал(а):
RCuPeR, не могу сегодня, уже нажал один раз
"Unknown column 'data' in 'field list'" а что за ошибка? вылезла после того как свой проект на ПК из ноута перевел, хотя уверен что таблицы правильны.
"Unknown column 'data' in 'field list'" а что за ошибка? вылезла после того как свой проект на ПК из ноута перевел, хотя уверен что таблицы правильны.
Спустя 4 минуты, 37 секунд (30.11.2011 - 18:37) RCuPeR написал(а):
Ну там же все написано. Неизвестная колонка "data". Проверь еще раз - все ли верно перенес.
Потом проверь запросы на синтаксические ошибки.
Потом проверь запросы на синтаксические ошибки.
_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...