Поиск
Различные функции
- FORMAT(X,D). Форматирует число Xв формате, подобном ' #, ###, ### . ##', округленное до Dразрядов, и возвращает результат в виде строки. Если D равно 0, результат не имеет десятичной точки или дробной части.
mysql> SELECT FORMAT(12332.123456, 4);
-> '12,332.1235' mysql> SELECT FORMAT(12332.1,4); - GET_LOCK(строка,таймаут). Пытается получить блокировку по имени, заданном строкой строка, с таймаутом длительностью таймаут секунд. Возвращает 1, если блокировка получена успешно, 0, если время ожидания превысило таймаут (например, из-за того, что другой клиент уже заблокировал это имя), либо NULL, если произошла ошибка (такая как переполнение памяти или уничтожение потока командой mysqladmin kill). Если у вас есть блокировка, полученная через GET_LOCK(), она снимается после выполнения RELEASE_LOCK(), нового вызова
GET_LOCK () либо разрыва соединения (как нормального, так и не нормального). Эта функция может использоваться для реализации блокировок приложений или
для эмуляции блокировок записей. Имена блокируются в глобальном контексте сервера. Если имя блокировано одним клиентом, GET_LOCK() блокирует любой запрос другого клиента на получение блокировки с тем же именем. Это позволяет клиентам согласовывать попытки доступа к общим ресурсам.
mysql> SELECT GET_LOCK(' lockl',10);
-> 1 mysql> SELECT IS_FREE_LOCK('locM•); - INET_ATON (выражение). Принимает сетевой адрес, представленный четырьмя чис
лами с разделителем-точкой, и возвращает целое, представляющее числовое зна
чение адреса. Адрес может быть 4- или 8-байтным.
mysql> SELECT INET_ATON('209.207.224.40'); -> 3520061480 - INET_NTOA (выражение). Принимает сетевой адрес в виде числа (4- или 8-байтного), возвращает адрес, представленный строкой, состоящей из четырех чисел, разделенных точкой.
- IS_FREE_LOCK {строка). Проверяет, свободна ли блокировка с именем строка. Возвращает 1, если блокировка свободна (никем не используется), 0, если занята, и NULL в случае ошибки. Функция IS_FREE_LOCK() была добавлена в MySQL 4.O.2.
- IS_USED_LOCK{строка). Проверяет, используется ли блокировка с именем строка (то есть, установлена ли она). Если это так, возвращает идентификатор соединения клиента, который удерживает блокировку. В противном случае возвращает NULL.
- MASTER_POS_WAIT (имя_журнала, позиция_в_журиале [, таймаут])
- RELEASE_LOCK(строка). Снимает блокировку с именем строка, которая была получена с помощью функции GET_LOCK(). Возвращает 1, если блокировка снята, 0,
если блокировка была установлена другим потоком (а значит, не может быть снята), и NULL, если блокировка с таким именем не существует. Блокировка не существует, если не была установлена вызовом GETJLOCK (), либо она уже снята. Вместе с RELEASE_LOCK () удобно использовать оператор DO (см. раздел Синтаксис DO). - UUID(). Возвращает Универсальный Уникальный Идентификатор (Universal Unique Identifier - UUID), сгенерированный в соответствии со спецификациями
-> '12,332.1000' mysql> SELECT FORMAT(12332.2,0);
-> '12,332'
-> 1 mysql> SELECT GET_LOCK('Iock2',10);
-> 1 mysql> SELECT RELEASE_LOCK('Iock2');
-> 1 mysql> SELECT RELEASE_LOCK('lockl');
-> NULL
Следует отметить, что второй вызов RELEASE_LOCK() возвращает NULL, поскольку блокировка ' lockl' была автоматически снята вторым вызовом GETLOCK ().
Сгенерированное число всегда содержит байты в порядке, заданном в сетевом адресе. Для только что приведенного примера оно вычисляется как 209 * 25б3 + 2
Начиная с версии MySQL 4.1.2, INET_ATON() также понимает IP-адреса в сокращенной форме: mysql> SELECT INETATON('127.0.0.Г ), INET_ATON(' 127. 1'); -> 2130706433, ""2130706433
Функция INET_ATON () была добавлена в MySQL 3.23.15.
Функция INET_NTOA () появилась в MySQL 3.23.15.
Если задано значение таймаут, MASTER_POS_WAIT () прекращает ожидание, когда истекают таймаут секунд. Значение таймаут может быть больше 0, а если его значение равно 0 или является отрицательным, то ожидания нет.
Функция MASTER_POS_WAIT() добавлена в MySQL 3.23.32. Аргумент таймаут появился в версии 4.0.10.
Environment) ("DCE 1.1: Удаленный вызов процедур" (Приложение А) САЕ (Общая среда приложений)), опубликованными Open Group в октябре 1987 года (документ под номером С706).
Идентификатор UUID спроектирован как число, которое является глобально уникальным во времени и пространстве. Ожидается, что два вызова UUIDO сгенерируют два разных значения, даже если эти два вызова произойдут на двух разных компьютерах, которые не подключены друг к другу.
UUID - это 128-разрядное число, представленное в виде строки, состоящей из пяти шестнадцатеричных чисел в формате aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:
- Первые три числа генерируются на основе временной метки.
- Четвертое число предохраняет темпоральную уникальность в случае, если значение временной метки теряет монотонность (например, из-за перехода на летнее время и обратно).
- Пятое число - это номер узла ШЕЕ 802, который представляет пространственную уникальность. Случайное число подставляется в случае, если последнее недоступно (например, если компьютер-хост не имеет сетевой платы Ethernet, или нет возможности извлечь аппаратный адрес интерфейса вашего компьютера). В этом случае пространственная уникальность не может быть гарантирована. Однако, несмотря на это, коллизии крайне маловероятны. В настоящее время МАС-адрес интерфейса принимается во внимание только в средах FreeBSD и Linux. В других операционных системах MySQL использует случайно сгенерированное 48-разрядное число.
raysql> SELECT UUID();
-> '6ccd780c-baba-1026-9564-0040f4311e29' Следует отметить, что UUID () пока не работает с репликацией. Функция UUID () появилась в версии MySQL 4.I.2.