Edición Studio /

Buscar y reemplazar

Busca texto en todas las tablas y reemplázalo celda a celda, tras una vista previa, en una transacción que se puede deshacer. Edición Studio.

En esta página

Abrirlo#

En la edición Studio, pasa a Avanzado y elige Buscar y reemplazar en la barra lateral. Desde los resultados de Buscar en todas las tablas, en modo avanzado, Reemplazar… lo abre con el mismo término.

El término queda en la dirección: /advanced/replace?find=….

Buscar#

Campo Qué hace
Buscar El texto que buscas.
Reemplazar por El texto nuevo. Puede ir vacío, para quitar lo que coincide.
Distinguir mayúsculas Distingue mayúsculas de minúsculas. Viene desactivado.
Palabra completa Solo coincide con el término como palabra entera, no dentro de otra.
Expresión regular Toma el término como una expresión regular de PostgreSQL. En el reemplazo, \1 es el primer grupo y \& la coincidencia entera. Una expresión mal escrita se avisa antes de empezar.
Esquemas en los que buscar Todos los esquemas por defecto, o los que elijas.

Sin Expresión regular, el término y el reemplazo se toman tal cual: ., * o \ son esos caracteres.

Busca en las columnas de texto: text, varchar, char y otros tipos de texto. Quedan fuera los enums, los arrays, el JSON y las columnas generadas.

Vista previa#

Vista previa pide a PostgreSQL cada celda que coincide, con su valor actual y el que tendría. Todavía no cambia nada. Las tablas se buscan de dos en dos, con un contador de progreso, y Detener corta la vista previa.

El resultado sale agrupado por tabla:

  • Cada celda enseña el cambio palabra a palabra: lo que sale va tachado en rojo, lo que entra en verde, y el texto de alrededor se recorta.
  • Cada celda, fila y tabla tiene su casilla, y Seleccionar todas las celdas abarca todo el resultado. Al principio está todo marcado. El total cambia según desmarcas: «342 celdas en 5 tablas seleccionadas».
  • Una tabla con más coincidencias de las que enseña la vista previa dice Coinciden más filas de las que se muestran.
  • Si una columna que coincide es clave primaria, clave foránea o tiene un índice único, la tabla avisa: «Cambiar una clave o una columna única puede romper referencias o chocar con otra fila.»

Algunas tablas salen aparte, fuera, con el motivo: sin clave primaria (sus filas no se pueden cambiar una a una), el rol no puede modificarla o tardó demasiado.

Reemplazar#

Reemplazar N celdas pide confirmación con el número de celdas y tablas. Después:

  • Todas las celdas elegidas cambian en una transacción.
  • Si una fila cambió desde la vista previa, no se escribe nada, como en cualquier otro conflicto.
  • Al terminar, un aviso dice cuántas celdas han cambiado y ofrece Deshacer.

Deshacer devuelve los valores anteriores, de una vez para todas las tablas. Hay reemplazos que no se pueden deshacer:

  • Los de más celdas que GRESBASE_REPLACE_UNDO_LIMIT (5000 por defecto, de 0 a 50000). La confirmación lo avisa antes y te pide escribir reemplazar.
  • Los que tocan una tabla con triggers o un cambio que se propaga en cascada a otras tablas, como cualquier guardado del grid. Mira Deshacer y rehacer.

Límites#

Límite Valor
Filas por tabla en la vista previa 1.000
Filas en total en la vista previa 10.000. Al llegar ahí la vista previa para y lo dice.
Tiempo por tabla 10 segundos
Celdas que se pueden deshacer GRESBASE_REPLACE_UNDO_LIMIT, 5.000 por defecto

Permisos y solo lectura#

  • Solo se busca en las columnas que tu rol puede leer con SELECT, y solo cambian las que puede modificar con UPDATE. La seguridad por filas se aplica: solo ves y cambias las filas que tu rol puede.
  • Cada tabla de la vista previa se lee en una transacción de solo lectura con su propio límite de tiempo.
  • En modo solo lectura, la vista previa funciona y enseña lo que cambiaría, sin el botón de reemplazar.