Отказано в отбрасывании команды пользователю X для таблицы ‘Y’

#c# #mysql #sql #mysql-workbench

#c# #mysql #sql #mysql-workbench

Вопрос:

Мы готовимся к масштабной миграции SQL.

В настоящее время у меня написан код, и я тестирую его с данными на своем локальном компьютере.

Шаг 1 — удалить существующие данные в таблице, прежде чем импортировать новые данные:

 using (var txn = m_mySqlConnection.BeginTransaction()) {
    using (var cmd = new MySqlCommand("TRUNCATE TABLE `blah_blah`;", m_mySqlConnection, txn)) {
        cmd.ExecuteNonQuery();
    }
    // other code
}
 

Но TRUNCATE команда выдает исключение всякий раз, когда я пытаюсь выполнить ее с помощью учетной записи пользователя MySQL, с которой я запускаю код:

скриншот кода

Я попытался зайти в MySQL Workbench, чтобы предоставить это DROP разрешение userid, но все, что я смог найти, это способ добавления DROP в раздел Просмотра.

Я пробовал это, но это не сработало.

скриншот рабочего стола

Как мне предоставить этому пользователю возможность удалять данные из этих таблиц, чтобы я мог протестировать свой сценарий заполнения?

Комментарии:

1. попробуйте DELETE FROM Table

2. Это сработало, Дэниел. Я выполнил поиск перед написанием своего кода, и то, что я нашел, было использовать TRUNCATE вместо DELETE . Я не знаю почему. Удаление, похоже, работает нормально.

Ответ №1:

TRUNCATE удаляет таблицу. Попробуйте использовать DELETE FROM Table .