DEFAULT(
col_name
)
Retorna el valor por defecto para una columna de tabla. A partir de MySQL 5.0.2, retorna un error si la columna no tiene valor por defecto.
mysql> UPDATE t SET i = DEFAULT(i)+1 WHERE id < 100;
FORMAT(
X
,D
)
Formatea el número X
a un
formato como '#,###,###.##'
, redondeado a
D
decimales, y retorna el
resultado como una cadena. Si D
es 0
, el resultado no tiene punto decimar
o parte fraccional.
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(
str
,timeout
)
Intenta obtener un bloqueo con un nombre dado por la cadena
str
, con un tiempo máximo de
timeout
segundos. Retorna
1
si el bloqueo se obtiene con éxito,
0
si el intento supera el tiempo máximo
(por ejemplo, debido a que otro cliente haya bloqueado el
nombre préviamente), o NULL
si ocurre un
error (tal como quedarse sin memoria o que el flujo acabe
con mysqladmin kill). Si tiene un bloqueo
obtenido con GET_LOCK()
, se libera cuando
ejecuta RELEASE_LOCK()
, ejecuta un nuevo
GET_LOCK()
, o su conexión termina
(normal o anormalmente).
Esta función puede usarse para implementar bloqueos de
aplicaciones o simular bloqueo de registros. Los nombres se
bloquean en el servidor. Si un nombre lo ha bloqueado un
cliente, GET_LOCK()
bloquea cualquier
petición de otro cliente para bloquear el mismo nombre.
Esto permite a los clientes que se pongan con un nombre de
bloqueo dado a usar el nombre para realizar advertencias de
bloqueo cooperativo. Pero tenga en cuenta que esto permite a
un cliente que no esté entre el conjunto de clientes
cooperativos bloquear un nombre, de forma deliverada o no, y
evitar que ninguno de los clientes cooperativos puedan
bloquear dicho nombre. Una forma de reducir la probabilidad
que esto pase es usar nombres de bloqueo especificos de
bases de datos o de aplicación. Por ejemplo, use nombres de
bloqueo de la forma db_name.str
o
app_name.str
.
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
Tenga en cuenta que la segunda llamada a
RELEASE_LOCK()
retorna
NULL
debido a que el bloqueo
'lock1'
se libera automáticamente por la
segunda llamada GET_LOCK()
.
INET_ATON(
expr
)
Dada la representación de cuatros números separados por puntos de una dirección de red como cadena de caracteres, retorna un entero que representa el valor numérico de la dirección. Las direcciones pueden ser direcciones de 4 o 8 bytes .
mysql> SELECT INET_ATON('209.207.224.40'); -> 3520061480
El número generado siempre tiene orden de bytes de red.
Para el ejemplo mostrado anteriormente, el número se
calcula como 209*256^3 + 207*256^2 + 224*256 +
40
.
INET_ATON()
también entiende direcciones
IP de forma corta:
mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1'); -> 2130706433, 2130706433
NOTA: Cuando almacene
valores generados por INET_ATON()
, se
recomiendoa que use una columna INT
UNSIGNED
. Si usa una columna
INT
(con signo), los valores
correspondientes a direcciones IP para las que el primer
octeto es mayor que 127 se truncan a 2147483647 (esto es, el
valor retornado por
INET_ATON('127.255.255.255')
). Consulte
Sección 11.2, “Tipos numéricos”.
INET_NTOA(
expr
)
Dada una dirección de red numérica (4 o 8 bytes), retorna la representación de puntos de la dirección como cadena.
mysql> SELECT INET_NTOA(3520061480); -> '209.207.224.40'
IS_FREE_LOCK(
str
)
Chequea si el nombre de bloqueo
str
está libre para uso (esto
es, no bloqueado). Retorna 1
si el
bloqueo está libre (nadie lo usa para bloquear),
0
si el bloqueo está en uso, y
NULL
en errores (tales como argumentos
incorrectos).
IS_USED_LOCK(
str
)
Chequea si el nombre de bloqueo
str
está en uso (esto es,
bloqueado). Si es así, retorna el identificador de
conexión del cliente que tiene el bloqueo. De otro modo,
retorna NULL
.
MASTER_POS_WAIT(
log_name
,log_pos
[,timeout
])
Esta función es útil para control de sincronización de
maestro/ esclavo. Bloquea hasta que el esclavo ha leído y
aplicado todas las actualizaciones hasta la posición
especificada en el log del maestro. El valor retornado es el
número de eventos logueados que tiene que esperar para
llegar a la posición especificada. La función retorna
NULL
si el flujo esclavo SQL no está
arrancado, la información maestra del esclavo no está
inicializada, los argumentos son incorrectos, u ocurre un
error. Retorna -1
si se agota el tiempo
de espera. Si el flujo SQL esclavo para mientras
MASTER_POS_WAIT()
está esperando, la
función retorna NULL
. Si el eslavo pasa
la posición especificada, la función retorna
inmediatamente.
Si un valor timeout
se
especifica, MASTER_POS_WAIT()
para de
esprar cuando pasan timeout
segundos. timeout
debe ser
superior a 0; un cero o timeout
negativo significa que no hay timeout.
RELEASE_LOCK(
str
)
Libera el bloqueo nombrado por la cadena
str
obtenida con
GET_LOCK()
. Retorna 1
si el bloqueo se libera, 0
si el bloqueo
no estaba bloqueado por este flujo (en cuyo caso el bloqueo
no se libera), y NULL
si el bloqueo
nombrado no existía. El bloqueo no existe si nunca se
obtuvo por una llamada a GET_LOCK()
o si
había sido liberado préviamente.
El comando DO
es conveniente para usar
con RELEASE_LOCK()
. Consulte
Sección 13.2.2, “Sintaxis de DO
”.
UUID()
Retorna un Universal Unique Identifier (UUID) (Identificador Único Universal) generado según la “DCE 1.1: Remote Procedure Call” (Apéndice A) CAE (Common Applications Environment) Especificaciones publicadas por The Open Group en Octubre 1997 (Número de Documento C706).
Se designa un UUID como número que es único globalmente en
espacio y tiempo. Dos llamadas a UUID()
generan dos valores distintos, incluso si estas llamadas se
realizan en dos máquinas separadas y no están conectadas
entre ellas.
Un UUID es un número de 128 bits representado por una
cadena de cinco números hexadecimales en formato
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
:
Los primeros tres números se generan de un valor temporal.
El cuarto número preserva unicidad temporal en caso de que el valor temporal pierda moniticidad (por ejemplo, debido al cambio horario).
El quinto número es un número IEEE 802 de nodo que proporciona unicidad espacial. Un número aleatorio se sustituye si el último no está disponible (por ejemplo, debido a que la máquina no tenga tarjeta Ethernet, o no sabemos encontrar la dirección hardware de una interfaz en el sistema operativo). En este caso, la unicidad espacial no se puede garantizar. Sin embargo, una colisión debe tener una probabilidad muy baja.
Actualmente, la dirección MAC de una interfaz se tiene en cuenta sólo en FreeBSD y Linux. En otros sistemas operativos, MySQL usa un número generado aleatoriamente de 48 bits.
mysql> SELECT UUID(); -> '6ccd780c-baba-1026-9564-0040f4311e29'
Tenga en cuenta que UUID()
no funciona
todavía con replicación.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.