Searching across tables
Data Search answers the question "where is this value stored?" — it looks for a string across many tables at once, which is how you find the one table holding a customer reference in a schema you did not design.
Running a search
- Click Search in the toolbar.
- Choose the tables to search. All and None select and clear the list in one click.
- Type the text and press
Enter, or click 🔍 Search.
While it runs the progress shows how far it has got and which table it is on, and results fill in as each table finishes. The button becomes Cancel for the duration — a search across a large schema can be stopped without waiting for it to work through the rest.
What gets searched
By default the search covers text columns — varchar, text, char, enum, set, json and uuid. Tick incl. numbers/dates to search everything else as well; those columns are cast to text before being compared, which is slower but finds 1500 in an amount column.
A table with no text columns at all is searched across every column either way, rather than silently contributing nothing.
Binary columns — BLOB, BINARY, bytea, IMAGE — are never searched. Casting them to text produces noise and can be very expensive on large values.
Your search text is taken literally
% and _ are wildcards in SQL, but not here — searching for 50% finds the literal string 50% rather than everything starting with 50. The same goes for backslashes and quotes, so Windows paths and escaped text can be pasted in as-is.
Matching ignores case on all four engines.
Reading the results
Results are grouped by table, with the matching rows underneath, and each table says how many columns were actually examined. Errors on individual tables — a permission problem, say — are reported next to that table instead of stopping the run.
When to use something else
- Finding a value in one known table — open the table and use the data grid filter. Much faster.
- Finding a column or table by name — use the search box above the sidebar tree.
- Looking for an exact numeric value you already know the home of — write the query in the SQL editor; a
WHERE amount = 1500against a couple of candidate tables beats casting every column in the schema to text.
Performance
Every selected table is queried. On a large schema, narrow the table list first — searching 200 tables to find something you know lives in one of five is time spent for nothing.
