@mysql_ru

Страница 39 из 142
Mikhail
11.07.2017
13:31:19
часть - в редисе, часть - в mysql-е?
У меня Redis уже используется как сессионное хранилище. Я просто хотел там хранить ещё и информацию о том, записан ли тот или иной пользователь в БД. А основную информацию хранить в БД, конечно

Sparrow
11.07.2017
13:33:34
This pdo php? if (a == 1 && b == 2 && (d * e)+c { echo $f; }

Pavel
11.07.2017
14:09:06
а вообще, кто-то может сказать пример правильного использования триггеров?)

когда вот правда надо и стоит

Google
lost
11.07.2017
14:10:26
операции с деньгами

Otto
11.07.2017
14:10:43
есть таблица "А" где есть 1000 записей, надо их всез проверить в таблице "Б" где там 5000 записей (сравнивать можно по "ID" они одинаковые, и из таблицы "Б" взять все данные и обновить в таблицу "А" как совет мне говорят сделать SELECT всё из таблицы "A" и потом сделать SELECT в таблицу "B" по IN (....) и потом обратно через массив обновлять всё... - вот убейте но не нравитсья мне такое решение... :(

Pavel
11.07.2017
14:11:20
операции с деньгами
а можно чуть более развернуто?)

lost
11.07.2017
14:11:35
механизм двойной проводки

когда ты делаешь обновление баланса пользователя

чтобы потом можно было легко найти косяк

логирование, самый банальный пример

Otto
11.07.2017
14:13:02
т.е. в итоге у меня получаеться 1. SELECT - определяем всех пользователей 2. SELECT - определяем их баланс 3. UPDATE - обновляем им баланс ...

Pavel
11.07.2017
14:13:36
Otto
11.07.2017
14:13:46
всё это можно на стороне процедуры сделать...?

Pavel
11.07.2017
14:14:01
что есть проверить?

Genti
12.07.2017
04:41:37
https://t.me/telegaup - авторский канал по продвижению и монетизации каналов в Telegram.

Muzaffar
12.07.2017
08:54:03
господа как с этим бороться? Can't connect to MySQL server on '192.168.42.195' (10061): Server did not respond within the specified timeout interval

Google
Alexey
12.07.2017
09:01:54
господа как с этим бороться? Can't connect to MySQL server on '192.168.42.195' (10061): Server did not respond within the specified timeout interval
я бы начал с telnet 192.168.42.195 3306. если это не работает, значит нужно смотреть в сторону фаерволла, и на каком порту слушает сервер (и слушает ли вообще). если это работает, значит проблемы в приложении (по сообщению из приложений иногда сложно понять, что именно они делали и что получили в ответ)

Аггей
12.07.2017
09:02:44
netstat -an|grep 3306

Muzaffar
12.07.2017
09:07:17
netstat -an|grep 3306
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING

это у сервера

хотя грепа не понял

Fike
12.07.2017
09:07:36
netstat -an|grep 3306
> Server did not respond within the specified timeout interval

Аггей
12.07.2017
09:08:28
> Server did not respond within the specified timeout interval
Да. Думал может совсем простая проблема )

Алексей
12.07.2017
09:27:45
можно ли в мускуле сделать взаимосвязанные поля

с несколькими таблицами?

смысл: таблица а ид переменные Таблица б ид переменные Таблица в ид ИД_переменной тип_перменной если в таблице В тип переменной равен А то ид перменной связан с таблицой а, и аналогично для б

Oleg
12.07.2017
10:05:59
всем привет. такой вопрос: почему такой запрос не ругается на осутствие a.remoteId в выражении groupBy? мне кажется, что должен ругаться ONLY_FULL_GROUP_BY включен. MySQL 5.7.17 https://gist.github.com/zzashpaupat/1615df415825a6e6d29b4eba6ce0d6cb

Alexey
12.07.2017
10:12:43
всем привет. такой вопрос: почему такой запрос не ругается на осутствие a.remoteId в выражении groupBy? мне кажется, что должен ругаться ONLY_FULL_GROUP_BY включен. MySQL 5.7.17 https://gist.github.com/zzashpaupat/1615df415825a6e6d29b4eba6ce0d6cb
потому что mysql в этом случае умный и понимает, что раз a.id — первичный ключ, и есть WHERE a.id = b.aId, то может быть только одно значение a.id в группе

это называется functional GROUP BY dependency: https://rpbouman.blogspot.ca/2014/09/mysql-575-group-by-respects-functional.html

Oleg
12.07.2017
10:13:11
Окей. А это где-то описано?

Alexey
12.07.2017
10:13:22
ну в руководстве тоже наверняка есть

Oleg
12.07.2017
10:13:23
О, спасибо, почитаю.

Но с точки зрения стандарта это походу не очень валидно?

Alexey
12.07.2017
10:14:00
валидно. там есть ссылки на стандарт

кстати, я какое-то время назад тестил, postgresql не очень умно в этом плане себя вёл

Google
Alexey
12.07.2017
10:14:32
вот ещё непосредственно от разработчика, который это реализовал: http://mysqlserverteam.com/mysql-5-7-only_full_group_by-improved-recognizing-functional-dependencies-enabled-by-default/

"Starting from SQL-99, the concept of “functional dependency” was introduced; a column B is functionally dependent on columns {A1, A2} in a result set if all rows which share the same value of A1 and the same value of A2 necessarily share the same value of B"

lost
12.07.2017
10:18:46
занимательно

Oleg
12.07.2017
10:19:39
да уж, спасибо за помощь!

Otto
12.07.2017
11:13:16
на ур. MySQL можно как-то сделать подключение к 2 разных серверов БД данных?

Alexander
12.07.2017
11:35:09
для репликации?

Muzaffar
12.07.2017
12:11:05
в общем порт открыт

может кто нибудь помочь?

Alexey
12.07.2017
12:28:02
в общем порт открыт
и mysql точно слушает на 3306-м порту?

Muzaffar
12.07.2017
12:29:33
PS C:\Users\Administrator> netstat -a Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:135 WIN-5PSG299S9IG:0 LISTENING TCP 0.0.0.0:445 WIN-5PSG299S9IG:0 LISTENING TCP 0.0.0.0:3306 WIN-5PSG299S9IG:0 LISTENING TCP 0.0.0.0:3389 WIN-5PSG299S9IG:0 LISTENING

оно?

Alexey
12.07.2017
12:30:17
оно, да. надо разбираться, почему putty/telnet не могут создать соединение

tcpdump? не знаю, как аналог на винде называется

Аггей
12.07.2017
12:31:03
wireshark

Muzaffar
12.07.2017
12:31:23
так



дальше опэн?

а вообще в стороне сервера ниче ненадо делать?



Alexander
12.07.2017
12:34:33
посмотреть windows firewall

Google
Muzaffar
12.07.2017
12:37:23
у сервера или на локельном?

посмотреть windows firewall
? дело было именно в этом

Ринат
12.07.2017
13:06:16
ON DUPLICATE KEY UPDATE для праймери кей из двух полей состоящий что то не понял как синтаксис подстроить

ON DUPLICATE KEY UPDATE id = VALUES(id) вот тут как переиначить на два поля, которые в сумму PK дают

lost
12.07.2017
13:07:19
ты хочешь через on duplicate key update изменять первичный ключ?

Ринат
12.07.2017
13:07:51
нет нет

я хочу если пара дублируется-не делать insert

в этом случае же update будет

lost
12.07.2017
13:08:36
тогда сделай insert ignore

Ринат
12.07.2017
13:09:39
ситуёвина такая

в логе есть поле datetime

есть uuid

из поля uuid и ещё одного-будет строится первинчый ключ

а так же есть две даты-это начальное время самое раннее когда появился uuid - и конечное

lost
12.07.2017
13:10:54
и ты хочешь обновлять конечное?

Ринат
12.07.2017
13:12:04
угу

типа start_date и end_date

lost
12.07.2017
13:12:19
тогда тебе не нужен values()

Ринат
12.07.2017
13:13:35
INSERT INTO split_test_session (uuid, test_name, test_value, start_datetime, end_datetime) VALUES ($uuid,$test_name, $test_value, $start_datetime, $end_datetime)

буду идти по логу с наименьшей датой, по порядку. Тоесть start_datetime должен первый раз заинсертится

Google
Ринат
12.07.2017
13:14:12
а end_Dattime -постоянно апдейтится

uuid и test_name- PK

lost
12.07.2017
13:14:39
а если end_datetime в ходе цикла меньше текущего окажется?

получишь тыкву вместо данных

on duplicate key update end_datetime = greatest(end_datetime, values(end_datetime))

такое должно помочь

Ринат
12.07.2017
13:16:19
greatest что за фича?

lost
12.07.2017
13:17:21
никогда нельзя быть уверенным в наборе данных с которым ты работаешь, в нем обязательно встретится какой-нибудь мусор, какие-нибудь нулевые даты, которые очень любит мускуль, или прочая ебурда о которой можно даже не подозревать

Ринат
12.07.2017
13:17:36
а как лучше тогда поступить?

lost
12.07.2017
13:17:39
greatest это функция

Ринат
12.07.2017
13:18:30
догнал

при каждом апдейте сравнивать будет с новым значением текущее

прикольно

Спасибо

будем пробовать

Страница 39 из 142