Редактирование: Работа с MySQL

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 24: Строка 24:
  
 
= Посчитать уменьшение дохода, если убрать правило 14-ти дней =
 
= Посчитать уменьшение дохода, если убрать правило 14-ти дней =
= СЧИТАЕТ НЕКОРРЕКТНО!!! =
+
 
 
<pre>
 
<pre>
 
# How much money we will lose if remove 14days-rule.
 
# How much money we will lose if remove 14days-rule.
Строка 72: Строка 72:
  
  
= Найти свободные диапазоны UID, выполнять в DBeaver =
+
= Найти свободные диапазоны UID =
  
  
Строка 93: Строка 93:
 
AND gap_end >= 10000; -- if you need a specific range
 
AND gap_end >= 10000; -- if you need a specific range
 
</pre>
 
</pre>
 
= Найти свободные диапазоны в номерах вланов, выполнять в DBeaver =
 
 
 
<pre>
 
-- Select gaps in Vlan number ranges
 
SELECT gaps.*, gaps.gap_end - gaps.gap_start + 1 AS gap_size
 
FROM (
 
  SELECT z.expected AS gap_start, IF(z.got - 1 > z.expected, z.got - 1, z.expected) AS gap_end
 
  FROM (
 
    SELECT @rownum := CONVERT(@rownum + 1, SIGNED INTEGER) AS expected, IF(@rownum = number, 0, @rownum := number) AS got
 
    FROM (SELECT @rownum := 0) AS a
 
    JOIN Vlan
 
    ORDER BY number
 
  ) AS z
 
  WHERE z.got != 0
 
  UNION
 
  SELECT MAX(number) + 1 AS gap_start, 4096 AS gap_end FROM Vlan
 
) AS gaps
 
WHERE gap_start <= gap_end
 
  AND gap_end >= 1 -- if you need a specific range
 
ORDER BY gap_size DESC;
 
</pre>
 
 
  
 
= Выбор юзеров вместе в полными адресами в файл=
 
= Выбор юзеров вместе в полными адресами в файл=
Строка 173: Строка 149:
 
<pre>
 
<pre>
 
update users set user='NEW_USERNAME' where user='OLD_USERNAME';
 
update users set user='NEW_USERNAME' where user='OLD_USERNAME';
update zayavki set login ='NEW_USERNAME' where login ='OLD_USERNAME';
+
update zayavki set user ='NEW_USERNAME' where user='OLD_USERNAME';
 
update actions set user ='NEW_USERNAME' where user='OLD_USERNAME';
 
update actions set user ='NEW_USERNAME' where user='OLD_USERNAME';
 
</pre>
 
</pre>
 
 
= Все дома, в которых есть хотя бы 1 коммутатор, но при этом меньше 4-х активных абонентов =
 
 
<pre>
 
SELECT ms.name street, house_with_commutator.number house, house_with_low_active_users.active_users
 
FROM (
 
  SELECT mh.id, mh.number, mh.street_id
 
  FROM map_houses mh
 
  INNER JOIN map_porches mp ON mp.house_id = mh.id
 
  INNER JOIN map_flats mf ON mf.porch_id = mp.id
 
  INNER JOIN NetworkNode nn ON nn.flat_id = mf.id
 
  INNER JOIN Commutator c ON c.networkNode_id = nn.id
 
  GROUP BY mh.id
 
) house_with_commutator
 
INNER JOIN (
 
  SELECT mh.id, COUNT(u.uid) active_users
 
  FROM map_houses mh
 
  INNER JOIN map_porches mp ON mp.house_id = mh.id
 
  INNER JOIN map_flats mf ON mf.porch_id = mp.id
 
  INNER JOIN map_flat_uid mfu ON mfu.flat_id = mf.id
 
  INNER JOIN users u ON u.uid = mfu.uid
 
  WHERE u.disabled = 0
 
  GROUP BY mh.id
 
  HAVING active_users < 4
 
) house_with_low_active_users ON house_with_low_active_users.id = house_with_commutator.id
 
INNER JOIN map_streets ms ON ms.id = house_with_commutator.street_id
 
ORDER BY ms.name, house_with_commutator.number;
 
</pre>
 
 
= Исправление MySQL Replication not running=
 
 
SHOW SLAVE STATUS\G;
 
STOP SLAVE;
 
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1000000000;
 
START SLAVE;
 
SELECT SLEEP(5);
 
SHOW SLAVE STATUS\G;
 

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.3 (см. Wikipoint:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!