• Почему подсеть перестает видеть при включении прокси?

    @Akina
    Сетевой и системный админ, SQL-программист.
    начальство сказало что будем подключать нового провайдера, для его работы на компьютерах нужно указать прокси, установить сертификат.

    Не надо слушать каждого начальствующего придурка. Его дело - поставить задачу и заткнуться. А вот как её решать и что для этого решения делать - должен решать ты. Подключив к процессу голову.

    Единственное место, где надо указывать настройки для новой схемы доступа - это сервер, который маршрутизирует клиентов в Инет, т.е. тот, на котором выполняется задача ИКС.

    А все рабочие станции по-прежнему ходят в Инет через него - но по новому каналу. На них вообще никакие настройки не должны меняться.

    Почему подсеть перестает видеть при включении прокси?

    Потому что все маршруты похерены. Клиент пытается искать другие подсети через новый канал. И ещё ваше счастье, что новый провайдер не отрубил вас за серый флуд.
    Ответ написан
    Комментировать
  • Как правильно назначать порты?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Правильно, я думаю, так.

    1. Выполнить опрос системы на предмет неиспользуемых портов в диапазоне пользовательских (49152—65535, кроме зарезервированных) портов. Выбрать из них необходимое количество портов и захватить их.
    2. Сформировать некий сервис (например, HTTP-сервер) на некоем незарезервированном статически назначенном порте из диапазона назначаемых программных портов (4096-49151), к которому клиент может обратиться и получить список захваченных для работы сервиса портов.
    Ответ написан
    Комментировать
  • Как c помощью bat-файла открыть все ссылки в браузере из одной папки на рабочем столе?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Что-то типа такого:
    FOR %%x IN ("x:\folder\*.url") do browser.exe %%x
    Ответ написан
    Комментировать
  • Как разбить одну таблицу на две и правильно заполнить её данными из импорта?

    @Akina
    Сетевой и системный админ, SQL-программист.
    CREATE TABLE client ( clientid INT AUTO_INCREMENT PRIMARY KEY,
                          firstname VARCHAR(255),
                          lastname VARCHAR(255),
                          phone BIGINT,                           -- если исходный VARCHAR - поменять, 
                                                                  -- либо соотв. преобразование в INSERT
                          UNIQUE (firstname, lastname, phone) );  -- можно потом удалить
    
    INSERT INTO client (firstname, lastname, phone)
        SELECT DISTINCT firstname, lastname, phone
        FROM orders_old;
    
    CREATE TABLE order ( orderid INT AUTO_INCREMENT PRIMARY KEY,
                         ordernumber INT,
                         clientid INT,
                         FOREIGN KEY (clientid) REFERENCES client (clientid) );
    
    INSERT INTO order (ordernumber, clientid)
        SELECT orders_old.ordernumber, client.clientid
        FROM orders_old
        JOIN client USING (firstname, lastname, phone);

    NOT NULL - по вкусу.
    Ответ написан
    1 комментарий
  • Как в PosgreSQL, в JSON добавить key:value?

    @Akina
    Сетевой и системный админ, SQL-программист.
    https://www.postgresql.org/docs/current/functions-...

    Оператор конкатенации JSONB - ||

    В более сложных случаях - jsonb_set(), jsonb_insert()... в общем, посмотри сам.
    Ответ написан
    Комментировать
  • Что конкретно делает wi-fi wi-fi'ем?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Что конкретно делает WI-FI WI-FI?

    Соответствие стандарту.
    В первую очередь, наверное, такие характеристики как набор рабочих частот и протокол канального уровня.
    Ответ написан
    Комментировать
  • Как правильно конвертировать SQL дату, чтобы корректно принять и отправить?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Хранить следует в формате для хранения даты (с учётом необходимости дополнительного хранения информации о зоне времени). Если СУБД имеет встроенный тип DATE - следует использовать его. Если такого нет - DATETIME. Если и такого нет - TIMESTAMP.

    Вводить следует в том формате, в каком согласно документации следует представлять литералы даты.
    Ответ написан
    Комментировать
  • Как задать поиск по совпадения в 2 и более слов?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Нужно каждое слово оборачивать в %?

    Нет. Вернее, этого недостаточно.
    Условие WHERE name LIKE '%сок%перс%', конечно, не пропустит указанные нежелательные записи - но и "Персиковый сок" тоже будет отброшен.

    Нужно проверять наличие каждого слова отдельно.

    SELECT *
    FROM table
    WHERE name LIKE '%сок%'
      AND name LIKE '%перс%';
    Ответ написан
    Комментировать
  • Как получить сумму стоимости товаров из массива json?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT test.id, SUM(jsontable.price) total_price
    FROM test
    CROSS JOIN JSON_TABLE(test.data,
                          '$.products[*]' COLUMNS (price INT PATH '$.price')) jsontable
    GROUP BY test.id

    fiddle
    Ответ написан
    Комментировать
  • Как выбрать нужные позиции в базе по датам?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT *
    FROM tablename
    WHERE data < CURRENT_DATE + INTERVAL 5 DAY
    -- AND data >= CURRENT_DATE
    Ответ написан
    Комментировать
  • Как добавить данные для каждого массива в трехмерным массиве PHP?

    @Akina
    Сетевой и системный админ, SQL-программист.
    $db->prepare("SELECT comments.id, ... , users.login
                       , :me AS me 
                  FROM `comments` ... ");
        $comments->execute([
        "id_post" => $dataAttr,
        "me" => $_SESSION["user"]["id_user"],
        ]);

    или типа того...
    Ответ написан
    1 комментарий
  • Как выбрать дату последней транзакции (чтоб эта транзакция была 7 дней назад)?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT id AS servie_id,
           name AS servie_name,
           MAX(TO_TIMESTAMP(created_at))::DATE AS last_trans_date
    FROM services
    GROUP BY 1,2
    HAVING last_trans_date <= CURRENT_DATE - INTERVAL '7 day'
    Ответ написан
    Комментировать
  • Где ошибка в EXECUTE FORMAT?

    @Akina
    Сетевой и системный админ, SQL-программист.
    CREATE OR REPLACE FUNCTION _Foo2(st TIMESTAMP, fin TIMESTAMP)
    RETURNS TABLE (out_key INTEGER, out_tst timestamptz, out_val FLOAT) AS $$
    DECLARE  
      
    BEGIN
    
      RETURN QUERY EXECUTE FORMAT('
      SELECT %I, %I, %I
      FROM %I 
      WHERE %I BETWEEN ''%s'' AND ''%s'';
      ', 
      'in_key', 'in_tst', 'in_val', 'in_table', 'in_tst', st, fin);
    
    END;
    
    $$ LANGUAGE plpgsql;


    DEMO fiddle

    Ошибки найдёте самостоятельно...
    Ответ написан
    1 комментарий
  • Как исправить ошибку Cannot add or update a child row: a foreign key constraint fails?

    @Akina
    Сетевой и системный админ, SQL-программист.
    высвечивает такую ошибку

    Ну тебе же вменяемо говорят, что не выполняется ограничение.

    Согласно ограничению то значение, которое ты вставляешь в поле dispatcher таблицы transportation в базе данных auto, уже должно существовать в поле id_dispatcher таблицы dispatcher той же базы.

    Так что следи, что идентификатор диспетчера, который ты присваиваешь полю, взят не с потолка.
    Ответ написан
    5 комментариев
  • Как сделать модуль VBA по умолчанию при создании книги Excel?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Есть минимум два варианта.
    Первый - предпочтительный, но ссылку на него уже дал datka.
    Второй - откорректировать шаблон по умолчанию. См. тут
    Ответ написан
    Комментировать
  • Как удалить все в строке после последнего пробела через Notepad++?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Найти: +[^ ]+$ (в начале перед плюсом один пробел)
    Заменить: (пустая строка)

    Режим - регулярные выражения, зацикленный поиск.

    Удаляет всё от последнего пробела до конца строки, если строка оканчивается не-пробелом. Удаляет и сам последний пробел (если их несколько - удаляет все). Если последний символ в строке пробел - не удаляет ничего.
    Ответ написан
    Комментировать
  • Как лучше сохранять дату и время?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Дата в описанном случае - это не отдельная сущность-свойство сущности Измерение, а атрибут экземпляра этой сущности.

    Соответственно "справочник дат" - дурь, не имеющая права на существование.

    Для хранения дат в любой СУБД есть соответствующие встроенные типы (их, как правило, не один). Хранение значения даты "кусками" - точно такая же не имеющая право на существование дурь. До тех пор пока выделяемые в отдельные поля компоненты этой даты не являются самостоятельной сущностью. Но в этом случае вычисляемое поле скорее всего будет более разумным решением.
    Ответ написан
    Комментировать
  • Какие ограничения несёт в себе INSERT IGNORE для секционированных таблиц?

    @Akina
    Сетевой и системный админ, SQL-программист.
    INSERT INTO может привести к ошибке. По любой причине. При этом процесс вставки прерывается, а все уже внесённые в таблицы изменения - откатываются.

    INSERT IGNORE преобразует ошибку в предупреждение. При этом выполнение запроса продолжается, а запись, попытка вставки которой привела к ошибке, не вставляется.

    Замечание. Дублирование - не единственное событие, которое может вызвать ошибку. Может быть ещё куча причин (CHECK constraint, SIGNAL из триггера, нарушение внешнего ключа и т.п.). Причём далеко не все типы ошибок восстановимы и могут быть проигнорированы/преобразованы в предупреждение. Если ошибка невосстановимая (как правило, это системные или внешние ошибки) - запрос прерывается по ошибке и откатывается обычным образом.

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

    Нужно игнорировать дублирующиеся данные. Буду делать INSERT IGNORE

    Кроме INSERT IGNORE INTO есть ещё два типа запросов, которые обрабатывают ошибку дублирования данных - это INSERT .. ON DUPLICATE KEY UPDATE и REPLACE INTO. Изучите их - возможно, какой-то из них лучше подходит для Вашей конкретной задачи. При этом REPLACE не поддерживает модификатор IGNORE и не может игнорировать другие ошибки.
    Ответ написан
    Комментировать
  • #1045 - Доступ закрыт для пользователя 'root'@'127.0.0.1', что делать?

    @Akina
    Сетевой и системный админ, SQL-программист.
    В OpenServer -> PHPMyAdmin я создал юзера root1

    Мало создать юзера, надо ещё дать ему необходимые для работы права. Хотя бы элементарно на чтение для той БД, которая указана как база по умолчанию.

    Вот параметры юзера

    Право USAGE - это синоним права “no privileges”. Т.е. свежесозданный юзер - абсолютно бесправен.

    Читайте и применяйте GRANT Statement. Особое внимание обратить на WITH GRANT OPTION.
    Ответ написан
    Комментировать
  • Как заставить работать COUNT с GROUP BY?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Надо подсчитать количество строк в ответе запроса вида

    Вариантов несколько.

    Первый, наиболее правильный - получить это значение отдельным запросом.
    SELECT COUNT(*)  AS cnt
    FROM (
        SELECT 1
        FROM "order" AS o
             LEFT JOIN product p ON (p.order_id = o.id)
        GROUP BY o.id
        HAVING sum(p.price) >= 10
    ) x


    Второй - используя средства языка программирования или библиотеки доступа, получить количество записей в наборе записей. Обычно подобное свойство у рекордсета присутствует.

    Третий - добавить соотв. поле в каждую запись выходного набора, используя оконную функцию, и взять значение из любой записи:
    SELECT o.id, COUNT(o.id) OVER () AS cnt
    FROM "order" AS o
             LEFT JOIN product p ON (p.order_id = o.id)
    GROUP BY o.id
    HAVING sum(p.price) >= 10
    Ответ написан