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

restore no me crea el auto_increment, que puede ser ?

Estas en el tema de restore no me crea el auto_increment, que puede ser ? en el foro de Mysql en Foros del Web. buenas que tal, hice un sistema de backup y restore por scripts sh el backup se hace bien, por ejemplo Código: SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; DROP TABLE ...
  #1 (permalink)  
Antiguo 09/04/2008, 11:57
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
restore no me crea el auto_increment, que puede ser ?

buenas que tal,
hice un sistema de backup y restore por scripts sh

el backup se hace bien, por ejemplo
Código:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";



DROP TABLE IF EXISTS `access`;
CREATE TABLE IF NOT EXISTS `access` (
  `aid` int(11) NOT NULL auto_increment,
  `mask` varchar(255) NOT NULL default '',
  `type` varchar(255) NOT NULL default '',
  `status` tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (`aid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
pero al hacer el restore ese campo aid por ejemplo no esta como auto_increment ...


el backup lo hago asi:
mysqldump --skip-opt -u userxxx --password="passxxx" basededatos | bzip2 -cq9 > /home/user/backup/backup-sql.bz2

y el restore asi(previamente lo descomprimo):
mysql -u userxxx -pcontraseniaxxx basededatos < /home/user/backup/backup.sql



Agradezco de antemano cualquier ayuda

muchisimas gracias

Última edición por anibal_cdf; 09/04/2008 a las 12:03
  #2 (permalink)  
Antiguo 09/04/2008, 12:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: restore no me crea el auto_increment, que puede ser ?

Si te conserva los números del id, en realidad te está evitando un problema mayor. Me explico: al parecer RESTORE tiene un problema consistente en que cuando tu borras un registro y su número de id, al hacer la restauración rehace el autoincrement modificando la numeración y 'reparándola'. Eso podría causar un daño irreparable a la relación entre las tablas, y -esto es una suposición mía- los programadores deben haber pensado que lo mejor es quitar la condición de autoincrementable y dejarlo en simplemente numérico para hacer el restore y poder guardar el dato. Tú sólo tendrás que hacerlo de nuevo autoincrementable y todo funcionará bien. El problema parece haber sido soslayado, según dicen, en el manual.
Échale un vistazo a este enlace, que es donde yo vi el problema:
http://ebergen.net/wordpress/2007/01...uto-increment/

Última edición por jurena; 09/04/2008 a las 12:20
  #3 (permalink)  
Antiguo 09/04/2008, 12:26
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: restore no me crea el auto_increment, que puede ser ?

muchas gracias por responder, el backup y restore es completo o sea se borra TODO y se carga todo de nuevo, es un sitio espejo digamos, despues yo con otros scripts corrijo los archivios de configuracion con el nombre nuevo de la abse , user y pass

perdon, ese codigo del sql que puse es uno viejo, el nuevo no tiene el auto increment, asique debe estar mal el backup con el mysqldump, tampoco tiene el drop ni nada


Cita:
-- ------------------------------------------------------
-- Server version 4.1.22-standard
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `access`
--

CREATE TABLE `access` (
`aid` int(11) NOT NULL,
`mask` varchar(255) NOT NULL default '',
`type` varchar(255) NOT NULL default '',
`status` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`aid`)
);
puede ser la opcion --skip-opt ? tengo que usar solo --opt ?
para que me haga un backup completo 100% ?
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 01:41.