Ver Mensaje Individual
  #15 (permalink)  
Antiguo 24/11/2011, 02:47
quimfv
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