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.
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(5000por defecto, de0a50000). La confirmación lo avisa antes y te pide escribirreemplazar. - 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 conUPDATE. 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.