Делимся последними новостями о СУБД SoQoL

Остановись мгновенье

Остановись мгновенье Функции CURRENT в СУБД SoQoL используется для получения текущего значения:
- даты и времени (CURRENT_DATE и CURRENT_TIMESTAMP);
- имени БД (CURRENT_DBNAME);
- имени пользователя БД (CURRENT_USER);
- имени схемы по умолчанию текущего пользователя (CURRENT_SCHEMA);
- уровня изоляции транзакции (CURRENT_ISOLATION_LEVEL).

Эти функции могут быть полезными, когда нужно работать с текущими значениями в запросах или выражениях.

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

create table SALE (NUMBER bigint DEFAULT NUMSEQ.nextval primary key, SELLER varchar (50), DATE date);

В этом случае запрос с функциями CURRENT добавит в таблицу текущие имя пользователя БД (продавца) и дату соответственно:

insert into SALE (SELLER, DATE) values (current_user, current_date) returning NUMBER, SELLER, DATE;

NUMBER      | SELLER          | DATE
---------------+---------------+-----------------------------
1                       | IvanovaDS   | 2023-07-26 09:00:43

Кроме вышеуказанных функций в СУБД SoQoL реализованы функции:
- SESSION_ID – возвращает номер текущей сессии пользователя;
- TRANSACTION_ID – возвращает номер текущей транзакции пользователя;
- VERSION – возвращает текущую версию сервера.

А что по поводу упомянутых функций в других СУБД?

В Oracle, PostgreSQL, MySQL также есть функции, возвращающие текущие значения дат, времени и т.д., которые могут отличаться названием.

Например, в MS SQL Server текущую дату вернёт функция GETDATE. Для получения текущего значения даты в конкретном часовом поясе необходимо вместо GETDATE использовать CURRENT_TIMESTAMP с функцией AT TIME ZONE.

В Oracle, PostgreSQL функция с приставкой LOCAL вместо CURRENT возвращает текущие дату и время в часовом поясе сеанса.

Какие функции у вас наиболее востребованы? В решении каких задач их используете?

Обсудить в телеграм!