Я использую запрос, чтобы получить список таблиц с определенным именем столбца:SQLite запрос для удаления нескольких таблиц
select name from sqlite_master where type='table' and sql like '%unique_col_id%';
Таким образом, он возвращает список имен таблиц, например, table_1, table_2, table_3. .
Я хотел бы, чтобы удалить все строки в таблицах с unique_col_id равного определенного значения:
DELETE FROM table_1 where unique_col_id=3;
DELETE FROM table_2 where unique_col_id=3;
DELETE FROM table_3 where unique_col_id=3;
есть ли способ, чтобы удалить все таблицы в одном запросе? Я имею в виду, чтобы интегрировать оба запроса (поиск таблицы и удалить все из них с unique_col_id = 3 ...)
Благодаря
Зачем вам нужно делать это в одном запросе? Это что-то, что можно решить с помощью транзакций или [триггеров] (https://sqlite.org/lang_createtrigger.html)? – Schwern
Я использую PHP как сервер, и производительность очень плохо, если я пытаюсь удалить несколько таблиц с несколькими запросами. – Moti
Это то, что мы называем проблемой XY. Ваша проблема в X (производительность), но вы спросили о Y (ваша попытка решения X, которая может не быть решением и может ухудшить ситуацию). Есть много вещей, которые могут повлиять на вашу работу. Несколько простых запросов, вероятно, не проблема, возможно, это поиск по неиндексированным столбцам. Вместо этого вы должны спросить о своей проблеме производительности, возможно, в новом вопросе. Придумайте минимальный код, демонстрирующий проблему, и обязательно покажите свою схему SQL. – Schwern