Помогите с SQL запросом банами/разбанами - Страница 2 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

Помогите с SQL запросом банами/разбанами

#16 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 354
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 05 Сентябрь 2018 - 12:01

Просмотреть сообщениеnewbie 05 Сентябрь 2018 - 11:12 сказал(а):

Лучше всего разобраться, почему возникает ошибка.


Согласен, отловить бы, почему такое происходит, ладно, буду тестировать, спасибо большое.
0

#17 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 075
  • Регистрация: 20-Март 09
  • Репутация: 2 436
  • IPB version:3.1.x
 

Отправлено 05 Сентябрь 2018 - 19:51

А зачем вы комируете ид из одной таблицу в другую? Они между собой связаны? Кто вам делал этот скрипт с банами на форуме?
0

#18 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 354
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 05 Сентябрь 2018 - 22:54

Просмотреть сообщениеsiv1987 05 Сентябрь 2018 - 19:51 сказал(а):

А зачем вы комируете ид из одной таблицу в другую? Они между собой связаны? Кто вам делал этот скрипт с банами на форуме?


Да, связаны, там есть раздел "Амнистии" - обжалование бана, там сравнение идет по ID. Автор https://invisioncomm...6002-griefcode/ он щас всё это дело делает на symfony там и интеграция с IPS будет https://git.ohsystem...hstatsv2/browse, но он как отдельный двиг, а я хочу в виде компонента для IPS, поэтому сам пытаюсь что-то сделать.

Сообщение изменено: TemKa_SD (05 Сентябрь 2018 - 22:54)

0

#19 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 075
  • Регистрация: 20-Март 09
  • Репутация: 2 436
  • IPB version:3.1.x
 

Отправлено 10 Сентябрь 2018 - 19:23

Если таблицы между собой связаны тогда они должны быть синхронизированы, и тот кто делает изменения в одной таблицы учитывал совместимость с другой, в противном случае возможны такие коллизии когда инсерт в таблицах происходит независимо а при копирование данных ид пересекаются. На форуме редко применяется запрос TRUNCATE TABLE для обнуления автоинкремента.
0

#20 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 354
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 12 Сентябрь 2018 - 06:14

так?

ALTER TABLE `stats_banhistory`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE (`id`);

ALTER TABLE `stats_bans`
  ADD KEY `name` (`name`),
  ADD KEY `ip` (`ip`),
  ADD KEY `srv` (`server`),
  ADD KEY `name_2` (`name`,`server`,`ip`),
  ADD INDEX ( `id` );

ALTER TABLE `stats_bans` ADD FOREIGN KEY ( `id` ) REFERENCES `stats_banhistory` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;

0

#21 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 354
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 13 Сентябрь 2018 - 02:32

Что-то не то.

Цитата

[Thu Sep 13 02:26:05 2018] [GAME: PETRI BALANCE #91] admin [TemKa_SD] sent command [pban] with payload [this]
[Thu Sep 13 02:26:05 2018] [MYSQL] error --- Cannot add or update a child row: a foreign key constraint fails (`wc3_ghost`.`stats_bans`, CONSTRAINT `stats_bans_ibfk_1` FOREIGN KEY (`id`) REFERENCES `stats_banhistory` (`id`))

0

#22 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 075
  • Регистрация: 20-Март 09
  • Репутация: 2 436
  • IPB version:3.1.x
 

Отправлено 13 Сентябрь 2018 - 09:38

Я бы не стал связываться с внешними ключами, а именно в коде где происходит обновления одной таблицы учитвал связь с другой и не записывать левые строки. В banhistory никто не должен ничего записывать кроме записей из основной таблицы. При копирование по задаче вы должны отбирать из основной таблицы те записи которые не существуют в архиве.
Вы уверены что условием expired < NOW() исключаете существующие записи в banhistory?
При дублирующих ид можно использовать ON DUPLICATE KEY UPDATE вместо простого INSERT. Тогда пересекающиеся записи будут перезаписаны.
Я думаю проблема у вас в логике, вы отбираете уже имеющиеся записи.
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна