Всем привет!
Как одним запросом очистить таблицу от всех записей?
Сейчас имею такой код на CI:
Файл model.php
function clear_log() {
$this->db->where('event' > '0')->delete("login_history");
}
Файл controler.php
function clear_log()
{
$this->logs_model->clear_log();
$this->session->set_flashdata('message', lang('admin currency msg save_success'));
redirect(site_url("admin/logs"));
}
Файл view.php
<a href="<?php echo site_url("admin/logs/clear_log/") ?>" class="btn btn-danger">очистить</a>
При выполнении я не получаю каких-либо ошибок, однако записи в БД не удаляются. Благодарен за любую помощь!
Для очистки таблицы используйте truncate()
:
$this->db->truncate('login_history');
В отличие от empty_table()
, который генерит DELETE FROM
SQL запрос, truncate()
генерирует TRUNCATE TABLE
, который является более производительным, потому что он удаляет данные путем деаллокации тех страниц, которые хранят табличные данные и только эти операции деаллокации записываются в лог транзакции. DELETE FROM
в свою очередь удаляет строки в таблице и для каждой оставляет запись в логе транзакции.
$this->db->empty_table('mytable'); // Produces: DELETE FROM mytable
оф.дока
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ЗдравствуйтеУ меня есть две абсолютно одинаковые по структуре базы данных, но в них разные записи