24/11/2011, 02:47
|
Colaborador | | Fecha de Ingreso: marzo-2008 Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses Puntos: 574 | |
Respuesta: como evitar que mysql se cuelgue despues de un UPDATE Cita: UPDATE propiedades set IDPropiedad = '57679',
Activo = '1',
Fecha1 = '2011-11-20',
Fecha2 = '0000-00-00',
Fecha3 = '0000-00-00',
IDDestino = '4',
IDTipoInmueble = '1',
Ambientes = '2',
Dormitorios = '',
IDZona = '1',
IDCiudad = '21',
Moneda = 'USD',
Precio = '118000',
Dueno = '',
IDAnunciante = '370',
telefono = '',
Ubicacion = 'Guemes',
NumeroCalle = '4100',
Piso = '0',
Puerta = 'B',
Superficie = '40',
AptoProf = '1',
Dependencia = '',
Cochera = '',
ymedio = '',
MasCuotas = '',
Lavadero = '1',
Baulera = '',
Antiguedad = '',
PorEscalera = '',
Orientacion = '',
Disposicion = 'Interno',
Plantas = '',
Salones = '',
Banos = '',
Aseos = '',
Terrazas = '',
Balcones = '',
Patio = '1',
Jardines = '',
Expensas = '380',
Superficie_Ext = '3',
Amueblado = '',
AireA = '',
Piscina = '',
Ascensor = '',
Reservado = '',
Parrilla = '',
Estado = 'A NUEVO',
horade1 = '15',
horahasta1 = '18',
horade2 = '15',
horahasta2 = '18',
horade3 = '15',
horahasta3 = '18',
Alarma = '',
AptoHipoteca = '',
Sum = '',
EspacioAereo = '', FechaAlta = '23/11/2011',
DescripcionDetallada = '',
PalierPriv = '',
Vestidor = '',
Escritorio = '',
Toilette = '',
DobEntrada = '',
Urgente = '',
Laundry = '',
Solarium = '',
Vistas = '',
Sauna = '',
Suite = '',
Recepcion = '',
SalFiestas = '',
Gym = '',
PlayRoom = '',
LosaRad = '',
Parquet = '',
Jacuzzi = '',
Hidromasaje = '',
Quincho = '',
Categoria = '',
Seguridad = '',
Amenities = '',
aviso_original = '',
modificado_anunciante = '',
Destacado = '1'
WHERE IDPropiedad = 57679 Primero como dices el update sobre la PK sobra, esto podria ser lo que te esta dando problemas puesto que una modificacion sobre la PK aun que en realidad no estas cambiando nada puede que fuerce la reconstrucción del indice asociado a la PK. Si se fuerza esa reconstrucció tambien pasaria con el indice sobre Activo...
Efectivamente esa fecha no llega con el formato adecuado.
Estas poniendo el delimitador ' ' a todos los campos con independencia del formato, no hace falta ni en los numericos ni en los booleanos (si en fechas y strings) pero esto es mas de estilo cuando tiene valor mysql lo considera con el tipo adequado. Lo que ya no es de estilo es que estas pasando booleanos a '' cadena vacia eso deberia dar error un booleano es 1=true 0=false o null pero no '' cadena vacia (no se si MySql tambien lo passa a null ... el manual dice que todo valor distinto de cero es considerado TRUE pero en los ejemplos solo habla de valores numericos, no se que hace con un string).
Por otro lado estas modificando todos los campos, mi pregunta es efectivamente se modifican todos siempre?
Si es que si nada, si no un script te podria construir un update dinamico que solo modifique los campos que realmente se hayan modificado...
Si solo se ha cambiado el telefono por decir algo deberias mandar el siguiente update supongamos que hemos quitado el telefono
UPDATE propiedades set telefono = '' WHERE IDPropiedad = 57679
por cierto de que te sirve declarar
`telefono` varchar(20) NOT NULL default '',
el telefono no puede ser null pero por defecto es cadena vacia, no parece logico....
Tienes claro que quando haces SET uncampo='' estas conviertiendo el contenido del campo a '' cadena vacia (cadena vacia <> null) y por tanto si habia algo en el campo habra desaparecido....
__________________ Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
Última edición por quimfv; 24/11/2011 a las 03:04 |