@dba_ru

Страница 212 из 718
Ilia
22.08.2017
14:53:10
Тут больше pro & cons of stored procedures

Алексей
22.08.2017
15:32:17
Это штатная документация, а не нота с металинка - поэтому доступна без регистрации и смс

dk
22.08.2017
15:33:02
Так кто круче-то? ДБА или ДевОпс?

Семён
22.08.2017
15:36:09
Это штатная документация, а не нота с металинка - поэтому доступна без регистрации и смс
Куда я sysctl писать буду, если у меня доступа к консоли сервера нет?

Google
Семён
22.08.2017
15:39:29
(

Алексей
22.08.2017
15:39:33
Куда я sysctl писать буду, если у меня доступа к консоли сервера нет?
Мой коммент был про ссылку на доку, а не про sysctl. Вполне вероятно, что с параметрами ядра все ОК, проблема с фрагментацией shared pool в oracle

Константин
23.08.2017
09:38:17
Всем привет, прошу подсказать в какую сторону копать. Имеется база под управлением liquibase. Имеется ли возможность откатывать последние изменения, которые были накатаны через liquibase? В качестве примера: имеется некоторое состояние скриптов, накатили изменения, после стало ясно, что необходимо их откатить. Также необходимо учитывать, что откат должен быть только моих изменений, так как параллельно могут и другие люди накатить.

Alex
23.08.2017
09:42:31
там же есть секция rollback

Константин
23.08.2017
09:55:14
на каждый changeSet? Да, есть, но мне на множество changeset'ов

Fike
23.08.2017
10:11:58
Вы ведете миграции одной базы из разных источников и храните это все в одной таблице?

Alex
23.08.2017
10:26:09
ну норм же. зато несколько баз не держать

Константин
23.08.2017
10:45:23
Есть проект DB, который хранит всю инфу только о базе (changeSet'ы и тд), а есть другие enterprise проекты, для работоспособности которых необходимы данные таблицы из проекта DB. Если проект N1 накатил свои изменения в DB, а потом выяснилось, что они не нужны, ему придется их откатывать. Примерно такая схема.

Павел
23.08.2017
10:51:49
Павел Лесников, [23.08.17 13:45] insert into areas (com_port, phone, area, acct, acct_counter, data_incoming, time_incoming) SELECT 'COM4', '+999999999999', '12', '143848', '1050', '2017-07-26', '07:50:45' FROM areas WHERE NOT EXISTS (SELECT com_port, phone, area, acct, acct_counter, data_incoming, time_incoming FROM areas WHERE com_port = 'COM4' AND phone = '+999999999999' AND area = '12' AND acct = '143848' AND acct_counter = '1050' AND data_incoming = '2017-07-26' AND time_incoming = '07:50:45'); есть такой вот запрос - вопрос - почему не вставляет в таблицу если ошибку не выдает ? задача на самом деле очень простая - перед инсертом проверять есть ли такие данные в таблице, если нет - вставлять, иначе пропускать

Google
Павел
23.08.2017
10:54:23
хм .. в 1-м ?

Ilya
23.08.2017
10:54:54
ну наверно

Ilia
23.08.2017
10:55:20
У тебя там разве несколько SELECTов ?

Ilya
23.08.2017
10:55:40
у него селект в селекте.

Павел
23.08.2017
10:56:00
ну да - сложный запрос

Ilia
23.08.2017
10:56:10
ЭТо не SELECT, это подSELECT уже

Павел
23.08.2017
10:56:46
есть идеи как это побороть ? я уже 2 часа мозг сушу

Ilia
23.08.2017
10:57:04
Если SELECT в INSERT ... SELECT не возвращает ни одной строки, у тебя не будет никаких ошибок, это нормальная ситуация. Ты можешь проверять после INSERT количество вставленных строк и возбуждать ошибку. Но это ты должен делать сам

dk
23.08.2017
10:57:13
Еще у него есть пачка джойнов и баночка юнионов, рано или поздно придется запускать на проде и эту хрень.

Ilia
23.08.2017
10:57:21
есть идеи как это побороть ? я уже 2 часа мозг сушу
Побороть просто — тебе надо исправить запрос

Убери из INSERT-SELECT фразу INSERT, и отладь запрос отдельно, добейся, чтобы он выдавал то, что нужно. Затем вставь обратно

Павел
23.08.2017
10:59:28
спс попробую

Ilia
23.08.2017
11:00:37
У тебя там тупо есть уже наверно такая запись

Не понимаю вообще в чём проблема твоя, ты вроде добился, чего хотел...

Павел
23.08.2017
11:01:02
без инсерта - работает на ура

Ilia
23.08.2017
11:01:15
А с INSERT ?

Павел
23.08.2017
11:01:18
см - обьясняю - все просто

есть база - пусть пустая

мы вставляем данные

Google
Павел
23.08.2017
11:02:18
далее при повторном запуске программы с теми же данными - нам нужно их пропускать, если данные новые - вставить в базу

Ilia
23.08.2017
11:02:23
Не пиши много маленьких сообщений подряд, пиши одно большое

Павел
23.08.2017
11:02:33
ок

Ilia
23.08.2017
11:02:46
Ну это всё понятно, что не работает то?

Павел
23.08.2017
11:03:13
в общем при пустой базе - данный код не срабатывает - не вставляет данные - хотя должен

Admin
ERROR: S client not available

Ilia
23.08.2017
11:05:14
СОтри базу в ноль и попробуй один селект без insert.

Он должен выдать запись.

Если нет, убирай по одному условию из WHERE, пока запись хоть одна не вернётся. Последнее условие будет неверным. Далее думай, и исправляй

Павел
23.08.2017
11:06:12
запись выдает - в базу не вставляет

Sergey
23.08.2017
11:06:41
в общем при пустой базе - данный код не срабатывает - не вставляет данные - хотя должен
Не oracle ли это? В случае с oracle должно помочь заменить во внешнем SELECT'е "FROM areas" на "FROM dual"

Ilia
23.08.2017
11:06:47
Не может такого быть... Проверяй тогда @@rowcount от INSERT

Павел
23.08.2017
11:07:00
не - это mysql ))

сын оракла)

Ilia
23.08.2017
11:07:52
А кстаи он прав...

Если AREAS изначально пустая, ничего вообще не вставить...

Соотв. FROM AREAS надо убрать.

Павел
23.08.2017
11:09:41
хм ареас это просто номер района - сорри если ввел вас в заблуждение

Ilia
23.08.2017
11:11:35
ПРоблема в том, кажется, что FROM обязательно, если есть WHERE.

тогда можно переписать это на INSERT ... ON DUPLICATE UPDATE с фиктивной установкой одного поля.

Google
Павел
23.08.2017
11:13:09
ой - что то сложно для моего уха - нельзя ли простой запрос напримере показать

Ilia
23.08.2017
11:13:47
https://dev.mysql.com/doc/refman/5.7/en/insert.html

Павел
23.08.2017
11:14:51
спс

Ilia
23.08.2017
11:15:58
insert into areas (com_port, phone, area, acct, acct_counter, data_incoming, time_incoming) VASLUES ('COM4', '+999999999999', '12', '143848', '1050', '2017-07-26', '07:50:45' ) ON DUPLICATE UPDATE data_incoming = '2017-07-26', time_incoming = '07:50:45';

Павел
23.08.2017
11:17:47
боюсь не пойдет - в это же время с другого ком порта и другого номера могут прийти данные

Ilia
23.08.2017
11:18:15
И?

Страница 212 из 718