LAST_INSERT_ID(выражение)
Возвращает последнее автоматически сгенерированное значение, которое было вставлено в столбец AUTO_INCREMENT. mysql> SELECT LAST_INSERT_ID(); -> 195 Последний идентификатор, который был сгенерирован, поддерживается на сервере на основе соединений. Это означает, что значение, возвращаемое клиенту, соответствует последнему сгенерированному значению AUTO_INCREMENT в сеансе данного клиента. Оно никак не может быть затронуто другими клиентами, равно как не требует блокировок или транзакций. Значение, возвращаемое LAST_INSERT_ID() не изменяется, если вы обновляете столбец AUTO_INCREMENT в строке не с помощью "магических" значений (то есть, не NULL и не 0 ). Если вы вставляете много строк одним оператором, LAST_INSERT_ID() возвращает значение для первой вставленной строки. Цель этого состоит в том, чтобы облегчить воспроизведение того же оператора INSERT на другом сервере. Если указан аргумент выражение, значение аргумента возвращается функцией и запоминается как следующее значение, которое LAST_INSERT_ID() вернет при следующем вызове. Это можно использовать для эмуляции последовательностей:
mysql> CREATE TABLE sequence (id INT NOT NULL); mysql> INSERT INTO sequence VALUES(0);
mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+l); mysql> SELECT LAST_INSERT_ID(); Оператор UPDATE увеличивает счетчик последовательности и заставляет следующий вызов LAST_INSERT_ID() возвращать измененное значение. Вы можете генерировать последовательности без вызова LAST_INSERT_ID(), но польза от ее применения заключается в том, что значение идентификатора поддерживается сервером как последнее автоматически сгенерированное значение. Это обеспечивает безопасное использование в многопользовательской среде, поскольку множество клиентов могут отправлять операторы UPDATE и получать свои собственные значения последовательности через оператор SELECT (или mysql_insert_id() ), никак не влияя и не подвергаясь влиянию других клиентов, для которых генерируются их собственные значения последовательности. USER() SESSION_USER() SYSTEM_USER() Возвращает имя текущего пользователя MySQL и имя хоста, с которого он подключился. mysql> SELECT USER(); -> 'davida@localhost' Значение представляет имя пользователя, которое было указано во время подключения к серверу, и имя компьютера-хоста, с которого произошло подключение. Возвращаемое значение может отличаться от того, которое выдает CURRENT_USER(). Вы можете извлечь имя пользователя, независимо от того, включает ли значение имя хоста или нет, следующим образом: mysql> SELECT SUBSTRING_INDEX(USER(),'@',1); -> 'davida' VERSION() Возвращает строку, содержащую информацию о версии сервера MySQL: mysql > SELECT VERSION(); -> '4.1.2-alpha-log' Следует отметить, что если строка версии заканчивается на '-log', это означает, что регистрация в журнале включена. Прочие функции FORMAT(X,D) Форматирует число X в формате, подобном ' #,###,###.## ', округленное до D разрядов, и возвращает результат в виде строки. Если D равно 0, результат не имеет десятичной точки или дробной части. mysql> SELECT FORMAT(12332.123456, 4) ; -> '12,332.1235'
mysql> SELECT FORMAT(12332.1,4) ; -> '12,332.1000'
mysql> SELECT FORMAT(12332.2,0) ; -> '12,332' GET_LOCK(строка, таймаут) Пытается получить блокировку по имени, заданном строкой строка, с таймаутом длительностью таймаут секунд. Возвращает 1, если блокировка получена успешно, 0, если время ожидания превысило таймаут (например, из-за того, что другой клиент уже заблокировал это имя), либо NULL, если произошла ошибка (такая как переполнение памяти или уничтожение потока командой mysqladmin kill ). Если у вас есть блокировка, полученная через GET_LOCK(), она снимается после выполнения RELEASE_LOCK(), нового вызова GET_LOCK() либо разрыва соединения (как нормального, так и ненормального). Эта функция может использоваться для реализации блокировок приложений или для эмуляции блокировок записей. Имена блокируются в глобальном контексте сервера. Если имя блокировано одним клиентом, GET_LOCK() блокирует любой запрос другого клиента на получение блокировки с тем же именем. Это позволяет клиентам согласовывать попытки доступа к общим ресурсам. mysql> SELECT GET_LOCK('lock1',10) ; -> 1
mysql> SELECT IS_FREE_LOCK('lock2'); -> 1
mysql> SELECT GET_LOCK('lock2',10); -> 1
mysql> SELECT RELEASE_LOCK('lock2'); -> 1
mysql> SELECT RELEASE_LOCK('lock1'); -> NULL Следует отметить, что второй вызов RELEASE_LOCK() возвращает NULL, поскольку блокировка ' lock1 ' была автоматически снята вторым вызовом GET_LOCK(). INET_ATON(выражение) Принимает сетевой адрес, представленный четырьмя числами с разделителем-точкой, и возвращает целое, представляющее числовое значение адреса. Адрес может быть 4- или 8-байтным. mysql> SELECT INET_ATON('209.207.224.40'); -> 3520061480 Сгенерированное число всегда содержит байты в порядке, заданном в сетевом адресе. Для только что приведенного примера оно вычисляется как 209 * 2563 + 207 * 2562 + 224 * 256 + 40. INET_ATON() также понимает IP-адреса в сокращенной форме: mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1'); -> 2130706433, 2130706433 INET_NTOA(выражение) Принимает сетевой адрес в виде числа (4- или 8- байтного), возвращает адрес, представленный строкой, состоящей из четырех чисел, разделенных точкой. mysql> SELECT INET_NTOA(3520061480); -> '209.207.224.40' IS_FREE_LOCK(строка) Проверяет, свободна ли блокировка с именем строка. Возвращает 1, если блокировка свободна (никем не используется), 0, если занята, и NULL в случае ошибки. IS_USED_LOCK(строка). Проверяет, используется ли блокировка с именем строка (то есть, установлена ли она). Если это так, возвращает идентификатор соединения клиента, который удерживает блокировку. В противном случае возвращает NULL. MASTER_POS_WAIT(имя_журнала, позиция_в_журнале [, таймаут]) Эта функция удобна для управления синхронизацией главный/подчиненный. Блокирует главный сервер до тех пор, пока подчиненный сервер не прочитает и не проведет все изменения вплоть до указанной позиции в бинарном журнале главного сервера. Возвращаемое значение представляет количество событий в журнале, обработку которых нужно выполнить системе синхронизации, чтобы дойти до указанной позиции. Функция возвращает NULL, если поток SQL подчиненного сервера не запущен, либо информация о главном сервере не инициализирована на подчиненном, либо указаны неправильные аргументы. Возвращает -1, если истекло время таймаута. Если подчиненный сервер уже достиг указанной позиции, функция возвращает управление немедленно. Если задано значение таймаут, MASTER_POS_WAIT() прекращает ожидание, когда истекают таймаут секунд. Значение таймаут может быть больше 0, а если его значение равно 0 или является отрицательным, то ожидания нет. RELEASE_LOCK(строка) Снимает блокировку с именем строка, которая была получена с помощью функции GET_LOCK(). Возвращает 1, если блокировка снята, 0, если блокировка была установлена другим потоком (а значит, не может быть снята), и NULL, если блокировка с таким именем не существует. Блокировка не существует, если не была установлена вызовом GET_LOCK(), либо она уже снята. UUID() Возвращает Универсальный Уникальный Идентификатор (Universal Unique Identifier - UUID). Идентификатор UUID спроектирован как число, которое является глобально уникальным во времени и пространстве. Ожидается, что два вызова UUID сгенерируют два разных значения, даже если эти два вызова произойдут на двух разных компьютерах, которые не подключены друг к другу. UUID - это 128-разрядное число, представленное в виде строки, состоящей из пяти шестнадцатеричных чисел в формате aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:
mysql> SELECT UUID(); -> '6ccd780c-baba-1026-9564-0040f4311e29' Дополнения
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (190)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |