Как очистить таблицу, не имея привилегий команды DROP / TRUNCATE?

#mysql #phpmyadmin

#mysql #phpmyadmin

Вопрос:

Я получаю эту ошибку.

введите описание изображения здесь

Мой клиент сказал, что нет возможности предоставить мне эти привилегии. Это очень ограниченная cPanel или что-то в этом роде.

Итак, мне нужно найти способ очистить таблицу, а также сбросить добавочные значения и т.д., Не имея привилегий команды УДАЛЕНИЯ. Есть предложения?

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

1. delete * from table_name ? Это не лучший способ и не приведет к сбросу каких-либо значений автоинкремента.

2. «Мой клиент сказал, что нет возможности предоставить мне эти привилегии. Это очень ограниченная cPanel или что-то в этом роде.» Похоже, клиент не хочет ее предоставлять.. cPanel, кстати, не имеет ничего общего с привилегиями MySQL, вы можете использовать его yes для создания учетных записей пользователей MySQL и управления привилегиями

3. @RaymondNijland Может быть, он не хочет ее предоставлять или не знает, как это сделать. В любом случае я застрял с ограниченными привилегиями и должен как-то заставить это работать

4. «Может быть, он не хочет ее предоставлять или не знает, как» Тогда вам нужно убедить клиента, зачем вам это нужно, и или позволить клиенту отправить кому-нибудь электронное письмо, чтобы он сделал это за него / нее, когда задействован общий веб-хостинг «В любом случае я застрял с ограниченными привилегиями и должен заставить это как-то работать » Невозможно, если у вас нет привилегий DELETE и ALTER , как предлагали другие ответы / комментарии. работает.

5. .. «Мой клиент сказал, что нет возможности предоставить мне эти привилегии» Хорошо, скажите своему клиенту, что вы не можете завершить проект, но клиенту все равно нужно оплатить счет за потраченное время для дополнительной мотивации в получении минимальных привилегий для его работы..

Ответ №1:

Я здесь не для того, чтобы говорить о безопасности.. Но если вы просто хотели «очистить» таблицу.. Вы можете использовать DELETE с CONDITIONAL .. IE

 DELETE FROM table_name WHERE id > 0;
  

Проблема в том, что у вас было ID от 1 до 300 в базе данных.. Без TRUNCATING ID s будет начинаться с 301 и далее —

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

1. Есть ли способы сбросить идентификатор, чтобы он снова начинался с 1?

2. @TrondroMulligan ALTER TABLE table_name AUTO_INCREMENT = 1

3. Как насчет перехода в Операции> Параметры таблицы и изменения значения AUTO_INCREMENT? prntscr.com/mwz8a1

4. Я предположил, что у вас нет ALTER возможностей, поскольку вы не можете TRUNCATE , но да, вы можете сбросить, auto_increment если у вас есть ALTER привилегии.

5. Будьте осторожны при сбросе AUTO_INCREMENT , поскольку, если есть какие-либо другие данные, которые относятся к предыдущим записям, теперь они будут связаны с этими новыми, возможно, несвязанными записями.

Ответ №2:

Без удаления и повторного создания таблицы невозможно сбросить автоматическое увеличение, чтобы начать все сначала с 1 или с любого значения, которое вы уже использовали.

Если у вас есть привилегии УДАЛЕНИЯ, вы можете очистить таблицу, выполнив УДАЛЕНИЕ ИЗ, но автоматическое увеличение не будет сброшено, пока таблица существует.

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

1. У меня также нет привилегий для удаления таблиц или создания новых таблиц.