Функции 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 возвращает текущие дату и время в часовом поясе сеанса.
Какие функции у вас наиболее востребованы? В решении каких задач их используете?
Обсудить в телеграм!
- даты и времени (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 возвращает текущие дату и время в часовом поясе сеанса.
Какие функции у вас наиболее востребованы? В решении каких задач их используете?
Обсудить в телеграм!