Categorías
Base de datos

Como resetear a 1 un campo incremental

Los campos incrementales lo que hacen es asignar un entero diferente a cada nuevo registro, añadiendo 1 al anterior valor asignado, empezando por el 1.

Por lo tanto, si borramos toda la información de la tabla y generamos un nuevo registro podremos comprobar como no obtiene un 1 sino el valor que hubiera correspondido antes de borrar los registros.

Si necesitamos borrar la tabla y resetear este número para reiniciar la numeración en 1 la opción más sencilla es ejecutar la siguiente sentencia SQL.

TRUNCATE nombre_tabla;

Esta instrucción vacía la tabla y resetea el autoincremental a su valor inicial.

Si lo que queremos es hacer que el valor autoincremental tome un valor determinado es posible utilizar la siguiente sentencia, que modifica la tabla cambiando el valor de autoincremento a 1000 o cualquier valor. NOTA: Hay que tener en cuenta que este número debe ser mayor que cualquier id de la tabla.

ALTER TABLE nombre_tabla AUTO_INCREMENT=1000

Categorías
Base de datos

Reemplazar un texto en MySQL

Por ejemplo si necesitas cambiar los enlaces que apunten a una web por url distinta.

Para hacer este cambio lo más sencillo es realizar una consulta SQL que sustituirla la cadena dominioviejo.com por dominionuevo.com en todos los contenidos.

Esto es tan sencillo como realizar la siguiente query:

UPDATE base de datos SET post_content = REPLACE (post_content,'http://dominioviejo.com','http://dominionuevo.com')

Cómo reemplazar una url por otra en wordpress directamente en la base de datos

La siguiente query la utilizaremos, para migrar de http a https una web, incluido la url de la web, con todos los enlaces de las imágenes y adjuntos.

UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldurl.com', 'https://www.newurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl.com','https://www.newurl.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldurl.com', 'https://www.newurl.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.oldurl.com','https://www.newurl.com');
/* Si tienes el plugin de traduciones WPML */
UPDATE wp_icl_strings SET value = replace(value,'http://www.oldurl.com','https://www.newurl.com');
Categorías
Base de datos

Cómo insertar automáticamente la fecha y hora en mysql

Para insertar automáticamente la fecha y la hora, es decir, el timestamp, en un campo de tipo TIMESTAMP en una tabla en MySQL podemos utilizar CURRENT_TIMESTAMP, siempre que estemos utilizando una versión de servidor Mysql superior a la 4.1.

Si se utiliza el timestamp automático en las inserciones, cuando se omita el campo en una inserción, éste tomara el valor de fecha y hora que tenga el servidor en ese momento.

Para esto se debe usar la propiedad DEFAULT CURRENT_TIMESTAMP en la creación del campo. Si se utiliza en las actualizaciones, cuando se produzca una sentencia UPDATE que omita el campo que tiene la propiedad en el timestamp, el campo tomará el valor actual de fecha y hora del servidor.

Para esto se debe usar la propiedad ON UPDATE CURRENT_TIMESTAMP en la creación del campo. Se pueden usar por separado, o combinadas:

Tabla con un campo timestamp que toma un valor de fecha automático tanto en inserciones como actualizaciones

mysql> CREATE TABLE tabla_ejemplo1 (fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);

Tabla con un campo timestamp que toma un valor de fecha automático tanto en inserciones pero NO en actualizaciones

mysql> CREATE TABLE tabla_ejemplo2 (fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

Tabla con un campo timestamp que toma un valor de fecha automático en actualizaciones pero NO en inserciones

mysql> CREATE TABLE tabla_ejemplo3 (fecha TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
Categorías
Base de datos

Vaciar todos los registros de una tabla en mysql

Si queremos eliminar todos los registros de una tabla en MySql tenemos dos opciones, la primera es tan solo utilizar nuestra sentencia “DELETE” de siempre solo que sin ningún “WHERE”, haciendo que se borren todos los datos de la tabla:

DELETE FROM tabla

Pero también podemos optar por la alternativa que es mediante la declaración “TRUNCATE TABLE” de la siguiente forma

TRUNCATE TABLE tabla

Para empezar la opción con DELETE devuelve el número de registros que fueron borrados, mientras que TRUNCATE TABLE no devuelve nada.

Por otro lado TRUNCATE lo que hace en realidad es destruir la tabla y volverla a crear y no eliminar cada uno de los registros y puesto que eliminar y crear la tabla es mucho más rápido que eliminar todos los registros.

Otra diferencia importante tiene que ver con la misma característica de TRUNCATE TABLE de destruir y volver a crear la tabla, y es que reinicia todos los valores AUTO_INCREMENT de la tabla, es decir que si vamos en el registro 1340, y usamos TRUNCATE TABLE al insertar un nuevo registro este volvería a ser el 1, mientras que en caso de usar DELETE FROM el AUTO_INCREMENT se conservaría intacto por lo que nuestro nuevo registro sería el número 1341 a pesar de ser el primero.

Categorías
Base de datos

Reparar tablas InnoDB o MyISAM

Para reparar tables InnoDB en mysql necesitaremos ejecutar en nuestro cliente de MySQL las siguientes sentencias para repararlas:
CHECK TABLE nombre_tabla EXTENDED
Distintas opciones que podemos aplicar a CHECK TABLE:

  • QUICK
    No escanea los registros para chequear enlaces incorrectos.
  • FAST
    Sólo chequea tablas que no se han cerrado correctamente.
  • CHANGED
    Sólo las tablas chequeadas que se han cambiado desde el úlitmo chequeo o no se han cerrado correctamente.
  • MEDIUM
    Escanea registros para verificar que los enlaces borrados están bien. También calcula el checksum de la clave para los registros y lo verifica con el checksum calculado para las claves.
  • EXTENDED
    Realiza una búsqueda completa para todas las claves para cada registro. Se asegura que la tabla es consistente 100%, pero tarda mucho tiempo!

La cual nos devolvera el status actual de nuestra tabla.

Si nos da Error ejecutaremos:
REPAIR TABLE nombre_tabla

Categorías
asp.net

Error Number: 15382 al instalar DotNetNuke

Connection Error(s):
Index #: 0
Source: .Net SqlClient Data Provider
Class: 14
Number: 15382
Message:

Solución a este error

  • Seleccione el grupo de aplicaciones que carga el DotNetNuke
  • Boton derecho «Configuración avanzada«
  • En la sección «Modelo de proceso» poner a true «Cargar prefil de Usuario«.
Categorías
asp.net

¿Que son los archivos .dll?

Las .DLL son LIBRERIAS que contienen rutinas y funciones que utilizan los programas.

Las librerías se utilizan para evitar tener que escribir repetidamente en los ejecutables las mismas instrucciones.

Las librerías permiten, además, que el .EXE sea más pequeño y las rutinas solamente se cargan en memoria cuando son llamadas por el programa.

Después, con programas especiales, se las «compila» para que puedan funcionar.

Entonces se convierten a lenguaje binario que nadie va a poder entender.

La unica forma de verlas es con editores especiales pero, aún así, lo verás en hexadecimal.

Categorías
asp.net

Recorrer y modificar una Hashtable

Dim tablaPrueba As New Hashtable

tablaPrueba.Add(11, "Madrid")
tablaPrueba.Add(22, "Barcelona")
tablaPrueba.Add(3, "Valencia")
tablaPrueba.Add(44, "Bilbao")
tablaPrueba.Add(57, "Sevilla")

' Se crea un Array de elementos DictionaryEntry con el tamaño de la tabla a recorrer
 Dim arrayCopia(tablaPrueba.Count - 1) As DictionaryEntry

' Se copia el contenido de la tabla sobre el array que acabamos de crear
 tablaPrueba.CopyTo(arrayCopia, 0)

' Se borra completamente la tabla inicial
 tablaPrueba.clear

' Se recorre el arrayCopia con un bucle For... Next a la vez que se añaden los nuevos elementos modificados a la tabla
 For i As Integer = 0 To arrayCopia.Length - 1
 tablaPrueba.Add(arrayCopia(i).Key, "España")
 Next