Задать вопрос
  • Как обновить сразу все записи с уникальным ключом?

    @Akina
    Сетевой и системный админ, SQL-программист.
    create table test(
      id SERIAL PRIMARY KEY,
      num int,
      t text,
      constraint u_constrainte unique (num, t) DEFERRABLE 
    )

    https://dbfiddle.uk/VuwdSZSH

    Можно ли как то сделать сортировку того что нужно обновить перед тем как собственно обновлять записи?

    Нет.
    Ответ написан
    3 комментария
  • Как сделать поиск в ячейке по знаку " с помощью VBA?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Для поиска двойной кавычки используется строковый литерал из четырёх двойных кавычек
    Instr(start, variable, """")
    Первая и последняя обрамляют литерал, вторая и третья образуют удвоенную двойную кавычку, которая интерпретируется как квотированная/экранированная.

    Есть и более простой способ.
    Instr(start, variable, Chr(34))

    -=о=--=о=--=о=--=о=--=о=--=о=--=о=-

    У меня в ячейки есть текст:
    ДООП "Лабаратория Хлеба" естественно-научной направленности

    Надо что бы она в соседнюю ячейку написал:
    ДООП "Лабаратория Хлеба"

    Если ты точно знаешь, что значение содержит не менее 2 двойных кавычек, и нужно отделить именно до второй включительно, можно так:
    Function get2dquotes(source As String) As String
        Dim tmp() As String
        tmp = Split(source, Chr(34))
        get2dquotes = tmp(0) & Chr(34) & tmp(1) & Chr(34)
    End Function

    И соответственно потом B1=get2dquotes(A1).
    Ответ написан
    1 комментарий
  • Как сделать ежесекундную обработку действий?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Ответ написан
    Комментировать
  • Драйвера видеокарты?

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

    Случаи/причины, когда драйвер нужно удалять:
    • драйвер занимает очень много места, а свободного пространства мало (характерно для видеокарт, звуковых карт и принтеров некоторых вендоров)
    • устройство будет потом возвращено, но нужно будет установить к нему дефолтный драйвер либо обновлённый от производителя


    Удаление драйвера, установленного отдельным инсталлятором, выполняется через Установка и удаление программ. Удаление драйвера, установленного автоматически или вручную через диспетчер устройств, выполняется с помощью удаления устройства в диспетчере оборудования, при котором будет выдан дополнительный запрос на удаление драйвера. Если запрос был выдан - следует удалить драйвер, перегрузиться и повторить удаление, бывает, что на устройство ставилось последовательно несколько драйверов, и их придётся описанным способом удалять их по одному. Повторять до тех пор, пока очередное удаление пройдёт без предложения удалить также и драйвер.

    Драйвер для устройства ставится исключительно по точному совпадению идентификатора устройства (Диспетчер устройств - нужное устройство - Свойства - Сведения - ИД оборудования - значения VEN_xxxx&DEV_yyyy). Попытка установки драйвера при несовпадении идентификатора в драйвере приведёт как минимум к паре запросов типа "Вы действительно хотите ... ?". Да и корректность работы (и вообще работа - вплоть до BSOD при загрузке) в случае установки неподходящего драйвера не гарантируется...
    Ответ написан
    Комментировать
  • Как расставить права на базу данных для сайта?

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

    Уровня БД либо отдельных объектов БД: данные - всё, кроме FILE; структура - CREATE TEMPORARY TABLES и (если используются хранимые объекты) EXECUTE.

    Ну а далее - плюс дополнительные необходимые права, в зависимости от кривизны структуры и работы с базой.
    Ответ написан
    Комментировать
  • Как поместить два устройства на одном коммутаторе в разные подсети?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Если то, что обозначено на схеме словами Switch1 - неуправляемый коммутатор, то может спасти MAC-based VLAN на порте роутера, подключенном к этому неуправляемому коммутатору. Впрочем, единый широковещательный домен никуда не денется.
    Ответ написан
  • Как сделать SQL запрос из двух таблиц?

    @Akina
    Сетевой и системный админ, SQL-программист.
    В синтаксисе MySQL:
    SELECT c.name category_name, p.id post_id, p.name post_name, p.title post_title
    FROM posts p
    JOIN categories c ON p.category_id = c.id
    UNION ALL
    SELECT name, NULL, NULL, NULL
    FROM categories 
    ORDER BY category_name, post_id IS NOT NULL

    Соответственно если в поле post_id обнаруживается NULL, то в этой записи категория, и она рисуется как категория. Если же там не NULL - то это пост, и он рисуется со смещением.

    Дурь, конечно, но для сельской местности сойдёт..
    Ответ написан
    1 комментарий
  • Как можно поднять терминальный сервер на Astra Linux?

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

    @Akina
    Сетевой и системный админ, SQL-программист.
    Во-первых, всё указанное - ни разу не кодировки. Это COLLATION - набор правил сравнения строковых значений.

    Во-вторых, убирать/удалять ничего не нужно. То, что не используется, ресурсов не потребляет.

    В третьих, добавление нужных кодировок и правил сравнения подробно описывается в документации:

    Adding a Character Set
    Adding a Collation to a Character Set

    Ну и вообще желательно изучить весь раздел Character Sets, Collations, Unicode.
    Ответ написан
    6 комментариев
  • PyMySQL не хочет принимать определенный запрос, в чем может быть проблема?

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

    А если от всей лишней шелухи избавиться, то от всей логики останется один-единственный оператор. Который сделает использование DELIMITER и вовсе ненужным.

    CREATE TRIGGER setUUID 
    BEFORE INSERT ON users
    FOR EACH ROW 
    	SET NEW.uuid = COALESCE(NEW.uuid, UUID());
    Ответ написан
    1 комментарий
  • Как реализовать first_value(field) с фильтром на field внутри окна?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT 
      *,
      FIRST_VALUE(CASE WHEN banner_id IN (13,14,15,17)
                       THEN banner_id 
                       END) OVER (PARTITION BY id
                                  ORDER BY CASE WHEN banner_id IN (13,14,15,17)
                                                THEN banner_id 
                                                END DESC NULLS LAST) max_banner_id_1,
      FIRST_VALUE(CASE WHEN banner_id IN (4,177,178)
                       THEN banner_id 
                       END) OVER (PARTITION BY id
                                  ORDER BY CASE WHEN banner_id IN (4,177,178)
                                                THEN banner_id
                                                END DESC NULLS LAST) max_banner_id_2
    FROM test
    ORDER BY banner_id
    Ответ написан
    1 комментарий
  • Подсчёт кол-ва детей у сотрудников access?

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

    Топнуть правым батоном точно в соединяющую линию, выбрать Параметры объединения. Итогово должна быть стрелка от Список к Дети.

    После этого - группировка по всем полям из Список и количество из Дети.
    Ответ написан
    Комментировать
  • В каких случаях нужно делать перекрёстный обжим сегодня?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Всё современное оборудование имеет Auto MDI/MDIX detection и не требует кроссовых кабелей.

    Кроссовые кабели обязательны при соединении двух оконечных или двух транзитных устройств, не поддерживающих автоопределения, и рекомендуются при соединении двух устройств, если оба являются оконечными (клиентскими) либо оба транзитными, и одно из них не поддерживает автоопределение.
    Ответ написан
    Комментировать
  • Как настроить правило firewall на mikrotik?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Firewall rule:

    Chain - forward
    Dst. address - блокируемый сайт
    In interface - порт к коммутатору
    Action - drop
    Ответ написан
  • Что такое PRIMARY KEY, CONSTRAINT, FOREIGN KEY, REFERENCES, INSERT INTO и для чего они нужны?

    @Akina
    Сетевой и системный админ, SQL-программист.
    PRIMARY KEY - первичный ключ. Поле, комбинация полей либо выражение (последнее MySQL не поддерживает), которое не может быть NULL и не допускает дубликатов (уникально для каждой отдельной записи в пределах таблицы). Поддерживается путём создания соответствующего уникального индекса и наложением ограничения NOT NULL на все используемые в выражении поля. По факту - однозначно идентифицирует запись. Кроме того, в MySQL выражение первичного ключа является кластерным индексом. См. Индекс -> Уникальный индекс -> Первичный индекс.

    CONSTRAINT - ограничение. Правило, которое не допускает создания записи, для которой значение выражения ограничения имеет значения FALSE (можно TRUE или NULL).

    FOREIGN KEY - внешний ключ. Ограничение, которое требует, чтобы указанное выражение для текущей записи присутствовало среди значений указанного выражения референсной таблицы (допускается и внешний ключ на ту же таблицу). Точнее, чтобы такая проверка присутствия не возвращала FALSE (можно TRUE или NULL).

    REFERENCES - определяет референсную таблицу и референсное выражение.

    INSERT INTO - запрос, вставляющий новые записи в таблицу.
    Ответ написан
    Комментировать
  • VLAN в одном Aruba 1930 (JL685A) реально сделать без маршрутизации?

    @Akina
    Сетевой и системный админ, SQL-программист.
    1. Перенастроить одну из рабстанций, сделать на станциях непересекающиеся подсети.
    2. В сервер добавить вторую сетевую карту и подключить к коммутатору.
    3. Один из портов к серверу включить в VLANID=10, второй соответственно VLANID=11.
    4. Настроить интерфейсы сервера на соответствующие подсети.
    5. Убедиться, что на сервере выключена маршрутизация между интерфейсами.

    63e4cd2f2ef71408657730.png

    --------------------------------------

    Valentin Barbolin выложил ссылку на документацию, что позволяет предложить более простое решение.

    Для организации изоляции портов используется настройка Protected Ports (стр. 198).

    В показанной в вопросе схеме все три порта (2, 3 и 48) включаются как untagged в один и тот же VLAN (например, в VLANID = 100). После чего порты 2 и 3 настраиваются как protected. В итоге трафик с портов 2 и 3 может форвардиться только и исключительно в порт 48, поскольку он в данном VLANID - единственный незащищённый. В то же время трафик с порта 48 может форвардиться в любой порт данного VLAN.

    63e4df7182131904050298.png

    Да, абсолютной изоляции в этой схеме не добиться. Например, если компьютер запросит с сервер список известных NetBIOS-ресурсов, то в списке будет и второй компьютер. Хотя он и будет недостижим.
    Ответ написан
  • Как узнать CIDR или маску подсети по голому ip адресу?

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

    Максимум - можно получить сведения о диапазоне, в который входит целевой IP, по учётным данным регистратора. Но вот как выделенный диапазон порезал его арендатор, и в какой подсети находится целевой адрес, определить в общем случае невозможно.
    Ответ написан
    3 комментария
  • Выбрать строку из БД по значениям связанной таблицы?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT rule.id, rule.path, rule.content, rule.cat_id 
    FROM rule
    JOIN rule_options ON rule.id = rule_options.rule_id
    WHERE rule_options.option IN (4670, 5492)
    GROUP BY 1,2,3,4
    HAVING COUNT(DISTINCT rule_options.option) = 2;
    Ответ написан
    2 комментария
  • Как выбрать данные за два периода?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT name,
           SUM(CASE WHEN {date in period 1} 
                    THEN value 
                    ELSE 0 
                    END) AS sum_1,
           SUM(CASE WHEN {date in period 2} 
                    THEN value 
                    ELSE 0 
                    END) AS sum_2
    FROM table
    WHERE {date in period 1 or 2}
    GROUP BY name
    Ответ написан
    Комментировать
  • Порекомендуйте варианты построения и оборудования для ЛВС в строящемся административно-складском здании 1500м2?

    @Akina
    Сетевой и системный админ, SQL-программист.
    • Выделение отдельного помещения для размещения внешнего ввода (Интернет и телефонные линии), кросса, серверов и активного оборудования. Металлическая дверь, кодовый замок.
    • Три линии питания - две для питания оборудования, причём запитанные от разных лучей, или хотя бы от разных фаз, плюс одна для питания кондиционера (минимум 7 кВт), плюс дежурное освещение.
    • Система пожаротушения - газовая, углекислота или фреон. Порошок - нафиг, случись что, всё оборудование можно выбрасывать и закупать новое. Воды быть не должно в принципе - даже просто проходящих через помещение труб.
    • Обязательно стойка (или стойки). Лотки, органайзеры, включая органайзеры электропитания.
    • Обязательно бесперебойники - причём время удержания должно быть минимум часа полтора, причём с учётом рабочей деградации батарей.
    • СКС разводится от розеток возле рабочих мест и до патч-панелей стойки витой парой 5 или 5е категории, чистой одножильной медью, многожилка или омеднённый алюминий ни в коем случае. Какие-то промежуточные и местные коммутаторы - забудь как страшный сон. Прокладка - по запотолочным металлическим лоткам, последний метр в коробе, монтаж на встраиваемые в короб розетки (для рабочих мест в центре комнаты - напольные короба и встраиваемые в пол розеточные блоки). Прокладка до внешних камер соответственно проводом для внешней прокладки, розетки во влагозащищённых распаечных коробках (по опыту - минимум 100х150). С розетками внутри не жадничать - на одно рабочее место минимум 2 розетки (локальная сеть, телефон), плюс дополнительные для сетевых принтеров и для точек доступа, ну и учесть, что сотрудники любят переставлять мебель самым идиотским образом. Судя по чертежам и описанию - будет штук 200 розеток.
    • Коммутаторы - управляемые как минимум L2+, PoE для подключения точек доступа, видеокамер и IP-телефонов, обычные для подключения компов и сетевых принтеров. Модель не сильно важна, но лучше сразу иметь дохрена резервных портов, чем потом докупать. Клиентские порты гигабит однозначно. Но я бы рекомендовал брать с хотя бы парой 10-гигабитных портов. Вендор по вкусу (лично я бы ставил D-Link).
    • Маршрутизатор - согласен с предыдущими товарищами насчёт Микротика вменяемой старшей модели.
    • Точки доступа - лучше сразу брать комплект для бесшовного покрытия всего здания. Насчёт количества, размещения и необходимости внешних антенн вместо встроенных ничего не скажу - это только по месту решается.


    Ну по минимуму где-то так.
    Ответ написан
    6 комментариев