Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Editando
SQL
(sección)
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
== Recuperación de clave == Los diseñadores de base de datos que usan una clave suplente como la clave principal para cada tabla, se ejecutará en el ocasional escenario en el que es necesario recuperar automáticamente la base de datos, generando una clave primaria de una sentencia SQL INSERT para su uso en otras sentencias SQL. La mayoría de los sistemas no permiten sentencias SQL INSERT para retornar fila de datos. Por lo tanto, se hace necesario aplicar una solución en tales escenarios. Implementaciones comunes incluyen: * Utilizando un procedimiento almacenado específico de base de datos que genera la clave suplente, realice la operación INSERT, y finalmente devuelve la clave generada. * Utilizando una sentencia [[SELECT]] especifica de base de datos, sobre una tabla temporal que contiene la última fila insertada. DB2 implementa esta característica de la siguiente manera: <syntaxhighlight lang="sql"> SELECT * FROM NEW TABLE ( INSERT INTO phone_book VALUES ('Cristobal Jeldrez','0426.817.10.30') ) AS t </syntaxhighlight> * Utilizando una sentencia [[SELECT]] después de la sentencia INSERT con función específica de base de datos, que devuelve la clave primaria generada por el registro insertado más recientemente. * Utilizando una combinación única de elementos del original SQL INSERT en una posterior sentencia [[SELECT]]. * Utilizando un [[identificador único global|GUID]] en la sentencia SQL INSERT y la recupera en una sentencia [[SELECT]]. * Utilizando la función de [[PHP]] mysql_insert_id() de [[MySQL]] después de la sentencia INSERT. * Utilizando un INSERT con la cláusula RETURNING para [[Oracle Corporation|Oracle]], que solo se puede utilizar dentro de un [[PL/SQL]] bloque, en el caso de [[PostgreSQL]] se puede usar también tanto con SQL como con PL/SQL. <syntaxhighlight lang="sql"> INSERT INTO phone_book VALUES ('Cristobal Jeldrez', '0426.817.10.30') RETURNING phone_book_id INTO v_pb_id </syntaxhighlight> * En el caso de MS SQL se puede utilizar la siguiente instrucción: <syntaxhighlight lang="sql"> Set NoCount On; INSERT INTO phone_book VALUES ('Cristobal Jeldrez', '0426.817.10.30'); Select @@Identity as id </syntaxhighlight>
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Editando
SQL
(sección)
Añadir idiomas
Añadir tema