Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Un campo PK y un campo autoincrement en misma tabla

Estas en el tema de Un campo PK y un campo autoincrement en misma tabla en el foro de Mysql en Foros del Web. como puedo lograr en MySQL que una misma tabla tenga un id_algo sea primary key y que exista otro campo id_partida sea autoincrement sin ser ...
  #1 (permalink)  
Antiguo 19/01/2016, 14:25
Avatar de admado  
Fecha de Ingreso: junio-2006
Ubicación: Morelos, México
Mensajes: 115
Antigüedad: 17 años, 9 meses
Puntos: 0
Un campo PK y un campo autoincrement en misma tabla

como puedo lograr en MySQL que una misma tabla tenga un id_algo sea primary key y que exista otro campo id_partida sea autoincrement sin ser mi llave primaria.

En SQL-Server

CREATE TABLE TBL_POLIZAS(
id_poliza varchar(10) NOT NULL primary key,
Concepto varchar(30)
)

create table POLIZAS_DET
( id_poliza varchar(10) references TBL_POLIZAS (id_poliza))
cargo int,
abono int,
pol_partida int IDENTITY (1,1)
)

id_poliza: es un folio que se controla en otra table
pol_partida: es un consecutivo que indica el orden de captura, para efectos de presentación.

Como puedo hacer esto en MySQL?
__________________
>>> El hombre se hace viejo muy pronto y sabio demasiado tarde <<<
  #2 (permalink)  
Antiguo 19/01/2016, 14:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Un campo PK y un campo autoincrement en misma tabla

En MySQL sólo puede haber un único AI por tabla, y en caso de crearlo ese campo debe ser la PK o bien parte de la PK (claves primarias compuestas). Asi está definido.
Ahora bien, explicame claramente por qué quieres un AI en una tabla donde ya tienes una PK... Eso no se entiende.
SI lo que quieres es un campo incremental para definir los diferentes items de un detalle en una relacion maestro-detalle, eso no requiere un AI ni para MySQL, ni para NINGUN DBMS,

Postada: Los tipos de dato IDENTITY no existen en MySQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/01/2016, 16:18
Avatar de admado  
Fecha de Ingreso: junio-2006
Ubicación: Morelos, México
Mensajes: 115
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Un campo PK y un campo autoincrement en misma tabla

Estoy haciendo la migración de una BD que esta en SQL-Server a MySQL.

IDENTITY se usa en SQL-Server = AUTOINCREMENT en MySQL

Necesito un un consecutivo de captura para efectos de presentación en papel de la TBL_detalles.

Ejemplo captura:
1. Restaurante 5,000.00
2. IVA 800.00
3. Gasolina 200.00
4. IVA 32.00
__________________
>>> El hombre se hace viejo muy pronto y sabio demasiado tarde <<<
  #4 (permalink)  
Antiguo 19/01/2016, 16:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Un campo PK y un campo autoincrement en misma tabla

Cita:
IDENTITY se usa en SQL-Server = AUTOINCREMENT en MySQL
No hace falta que aclares... Me dedico a las BBDD y manejo tanto SQL Server como Oracle, MySQL, PostgreSQL y otras.
Mi aclaración era para que tuvieses en cuenta que los tipos de dato no son portables entre los DBMS..
Bueno, No existe la forma directa de migrar lo que que tienes en SQL Server a MySQL. Para poder lograr eso (que es exactamente lo que dije que era), solamente lo puedes hacer usando TRIGGERS, cosa bastante sencilla.
Pero ten en cuenta que los TRIGGER como también todas las rutinas almacenadas, no se escriben igual en MySQL que en SQL Server, u Oacle, por ejemplo, porque no existe un lenguaje procedural estandarizado, como si existe el ANSI SQL...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:03.