Hola
se me están duplicando algunos registros
como debo hacer para evitar se dupliquen, como se filtran borran etc. en Mysql
Saluditos
Como puedo evitar registros duplicados en mysql help
Como puedo evitar registros duplicados en mysql help
Que es mejor que programar? creo que nada
Atropellada pero aqui ando
I love Fivewin
séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Atropellada pero aqui ando
I love Fivewin
séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
- goosfancito
- Posts: 1392
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Como puedo evitar registros duplicados en mysql help
el "se me estan duplicando" suena a cosa de mandinga. pero bueno yo haria esto:
1) backup
2) buscar cuales son los duplicados (comparando registros)
3) una vez que tengo esos registros ver que si los borros no altere otros (por las dudas que hayan sido creado por tablas conectadas entre si)
4) asegurarse que el usuario que esta abriendo la base de datos tenga permisos para eliminar.
5) en un ARRAY pondria los ID de esos registros que quiero eliminar y luego recorro el array y voy borrando el registro.
1) backup
2) buscar cuales son los duplicados (comparando registros)
3) una vez que tengo esos registros ver que si los borros no altere otros (por las dudas que hayan sido creado por tablas conectadas entre si)
4) asegurarse que el usuario que esta abriendo la base de datos tenga permisos para eliminar.
5) en un ARRAY pondria los ID de esos registros que quiero eliminar y luego recorro el array y voy borrando el registro.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
Re: Como puedo evitar registros duplicados en mysql help
Aida,
Para evitar la duplicacion de registros debes simular el bloqueo, esto porque MYSQL no tiene bloqueo a nivel de registro, confirmame que usas para acceder a mysql si es dolphin te puedo enviar un ejemplo de como hacerlo.
Slds
Para evitar la duplicacion de registros debes simular el bloqueo, esto porque MYSQL no tiene bloqueo a nivel de registro, confirmame que usas para acceder a mysql si es dolphin te puedo enviar un ejemplo de como hacerlo.
Slds
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
- Willi Quintana
- Posts: 859
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: Como puedo evitar registros duplicados en mysql help
Holas,,, Para evitar que se dupliquen registros,,, mucho tiene que ver el diseño de la tabla, como crear llaves únicas, primarias etc,,, asi el mismo MySQL se encarga de controlar el tema...
Para eliminar registros duplicados de la tabla clientes en cuyo campo ruc_dni están los registros duplicados
1ro. creamos una tabla temporal (clientmp) con la misma estructura y datos de la tabla de clientes pero agrupado por el campo ruc_dni
2do. eliminamos la tabla clientes
3ro. insertamos los registros e la tabla clientmp a la tabla clientes ( ya vienen sin duplicados)
4to. eliminamos la tabla clientmp
5to.optimizamos la tabla clientes
y listo......
Para eliminar registros duplicados de la tabla clientes en cuyo campo ruc_dni están los registros duplicados
1ro. creamos una tabla temporal (clientmp) con la misma estructura y datos de la tabla de clientes pero agrupado por el campo ruc_dni
2do. eliminamos la tabla clientes
3ro. insertamos los registros e la tabla clientmp a la tabla clientes ( ya vienen sin duplicados)
4to. eliminamos la tabla clientmp
5to.optimizamos la tabla clientes
y listo......
Code: Select all
cRegis := "CREATE TABLE clientmp AS SELECT * FROM clientes GROUP BY (clientes.ruc_dni)" // 1ro
SQLExec(oMySQL, cRegis)
cRegis := "DELETE FROM clientes" // 2do
SQLExec(oMySQL, cRegis)
cRegis := "INSERT INTO clientes (SELECT * FROM clientmp)" // 3ro
SQLExec(oMySQL, cRegis)
cRegis := "DROP TABLE clientmp" // 4to
SQLExec(oMySQL, cRegis)
cRegis := "OPTIMIZE TABLE clientes" // 5to
oObj := SQLQry(oMySQL, oObj, cRegis)
Re: Como puedo evitar registros duplicados en mysql help
Yo lo hago asi:
SALUDOS.
Code: Select all
#include "fivewin.ch"
#include <tdolphin.ch>
#DEFINE C_SIMPLE CHR( 39 )
#DEFINE c_simple CHR( 39 )
Function Test()
local cClave := "0001"
local cNombre := "CESAR CORTES CRUZ"
local cDir := "CANELO 97"
local cQry := ""
local oQry
local nSeek
* verificamos si el registro existe
cQry := "SELECT clave,nombre"
cQry += " FROM clientes"
cQry += " WHERE clave=" + C_SIMPLE + cstr2( cClave ) + C_SIMPLE
cQry += " ORDER BY clave LIMIT 1"
oQry := oCon:Query( cQry )
nSeek := oQry:nRecCount
oQry:End()
if nSeek = 0
cQry := "INSERT INTO clientes SET "
cQry += "clave=" + ClipValue2SQL( cClave ) + ","
else
cQry := "UPDATE clientes SET "
endif
cQry += "nombre=" + ClipValue2SQL( cNombre ) + ","
cQry += "direccion=" + ClipValue2SQL( cDir )
if nSeek > 0
cQry += " WHERE clave=" + C_SIMPLE + cstr2( cClave ) + C_SIMPLE
ENDIF
//guardamos la informacion
oCon:BeginTransaction()
oCon:Execute( cQry )
oCon:CommitTransaction()
Return nil
FUNCTION cStr2( nNum )
RETURN AllTrim( CStr( nNum ) )
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
- goosfancito
- Posts: 1392
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Como puedo evitar registros duplicados en mysql help
me da algo vuelta en la cabeza...
porque se te repiten registros?
porque se te repiten registros?
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: Como puedo evitar registros duplicados en mysql help
Saludos, llegue tarde a la clase, creo ya todo lo han dicho, el mejor control para evitar duplicidad de registro es el campo Key, con eso no hay pele, por que hasta haciendolo directamente sobre la tabla con algun administrador de database, te avisara que el campo que estas tratando de entrar existe. Tambien podiras crear una rutina ordenando los registros por el camopo dupliacado, haces un gotop a la tabla, usas un do while !eof() y comparas con una var el valor duplicado, si es igual a la var lo borras, menos la primera vez para que quede uno, luego cuando encuentro uno que no sea, le pasa ese valor a la VAR, saltas un registro y sigue la rutina de preguntar si esta duplicado y borrarlo, a lo mejor parace algo ambiguo y trabajoso, pero si no tiene buen control sobre MySql, esto sera mejor, ya que un pele en Mysql y seguro limpias toda la tabla. Obviamente antes de hacer todo esto, la recomendacion es tener un respaldo preventivo de las tablas, por si acaso, espero haber ayudado en vez de enrredar m as, saludos...
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
Re: Como puedo evitar registros duplicados en mysql help
Lo mejor es lo que dice Willi.
Si tienes acceso al servidor mediante frontend como HeidiSQL o algún otro mejor, así te evitaras hacer programas.
CREATE TABLE nuevaTabla SELECT DISTINCT * FROM viejaTabla;
Prueba eso Aida.
Fijate en el DISTINCT .
Luego:
1) comprueba la nuevaTabla que tiene lo que tu quieres -> SELECT * FROM nuevaTabla ORDER BY campo
2) Borras la tabla vieja -> DROP TABLE tablaVieja
3) Renombras la nueva al viejo nombre -> RENAME TABLE nuevaTabla TO tablaVieja
4) Crea en la tabla una clave primaria -> ALTER TABLE tablaVieja ADD PRIMARY KEY ( campo,...)
Las sentencias las he hecho sin probar pero son esas
Salu2
Si tienes acceso al servidor mediante frontend como HeidiSQL o algún otro mejor, así te evitaras hacer programas.
CREATE TABLE nuevaTabla SELECT DISTINCT * FROM viejaTabla;
Prueba eso Aida.
Fijate en el DISTINCT .
Luego:
1) comprueba la nuevaTabla que tiene lo que tu quieres -> SELECT * FROM nuevaTabla ORDER BY campo
2) Borras la tabla vieja -> DROP TABLE tablaVieja
3) Renombras la nueva al viejo nombre -> RENAME TABLE nuevaTabla TO tablaVieja
4) Crea en la tabla una clave primaria -> ALTER TABLE tablaVieja ADD PRIMARY KEY ( campo,...)
Las sentencias las he hecho sin probar pero son esas
Salu2
______________________________________________________________________________
Sevilla - Andalucía
Sevilla - Andalucía
Re: Como puedo evitar registros duplicados en mysql help
Muchas gracias tomare nota
Saluditos
Saluditos
Que es mejor que programar? creo que nada
Atropellada pero aqui ando
I love Fivewin
séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Atropellada pero aqui ando
I love Fivewin
séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ