Перейти к содержимому

Использование SQL-запросов для массовых операций с данными

Внимание:

Перед выполнением любых операций, изменяющих или удаляющих значительные объемы данных, обязательно создайте актуальную резервную копию вашей базы данных!

✅ Для проверки, что именно будет затронуто, всегда сначала используйте SELECT, а не DELETE.

Основные SQL-запросы для управления записями No Code-приложений Corta

Как удалить все записи

ОперацияSQL-запрос
Все значения записей (compose_record_value)

sql<br>DELETE FROM compose_record_value;<br>

Все записи (compose_record)

sql<br>DELETE FROM compose_record;<br>

Как удалить все записи определённого пространства (Namespace)

ОперацияSQL-запрос
Значения записей в пространстве

sql<br>DELETE FROM compose_record_value WHERE record_id IN (SELECT id FROM compose_record WHERE rel_namespace = {NAMESPACE_ID} AND rel_module = {MODULE_ID});<br>

Записи в пространстве

sql<br>DELETE FROM compose_record WHERE rel_namespace = {NAMESPACE_ID};<br>

Как удалить все записи определённого модуля

ОперацияSQL-запрос
Значения записей модуля

sql<br>DELETE FROM compose_record_value WHERE record_id IN (SELECT id FROM compose_record WHERE rel_namespace = {NAMESPACE_ID} AND rel_module = {MODULE_ID});<br>

Записи модуля

sql<br>DELETE FROM compose_record WHERE rel_namespace = {NAMESPACE_ID} AND rel_module = {MODULE_ID};<br>

Как удалить определённые значения по названию поля

ОперацияSQL-запрос
Удалить значения определённого поля

sql<br>DELETE FROM compose_record_value WHERE name = {FIELD_NAME} AND record_id IN (SELECT id FROM compose_record WHERE rel_namespace = {NAMESPACE_ID} AND rel_module = {MODULE_ID});<br>

Как удалить все “мягко” удалённые записи (Soft Deleted)

ОперацияSQL-запрос
Значения удалённых записей

sql<br>DELETE FROM compose_record_value WHERE record_id IN (SELECT id FROM compose_record WHERE rel_namespace = {NAMESPACE_ID} AND rel_module = {MODULE_ID} AND deleted_at IS NOT NULL);<br>

Удалённые записи

sql<br>DELETE FROM compose_record WHERE rel_namespace = {NAMESPACE_ID} AND rel_module = {MODULE_ID} AND deleted_at IS NOT NULL;<br>

Рекомендации по безопасности

  • Для визуального контроля того, что будет удалено, замените DELETE на SELECT *с теми же условиями.
  • Любые операции выполняйте только после резервного копирования.
  • Пользуйтесь транзакциями и правами пользователя только на чтение при пробных операциях.

Пример безопасного удаления с предварительным просмотром

-- Сначала проверьте, что будет удалено:
SELECT * FROM compose_record_value WHERE record_id IN (
  SELECT id FROM compose_record WHERE rel_namespace = 10001 AND rel_module = 20003
);

-- Если всё корректно, можно выполнить удаление:
DELETE FROM compose_record_value WHERE record_id IN (
  SELECT id FROM compose_record WHERE rel_namespace = 10001 AND rel_module = 20003
);

Важно:

Все идентификаторы ({NAMESPACE_ID}, {MODULE_ID}, {FIELD_NAME}) заменяйте на фактические значения вашей системы Corta.