Как очистить таблицу mysql?

398
01 мая 2017, 04:04

Всем привет!

Как одним запросом очистить таблицу от всех записей?

Сейчас имею такой код на 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>

При выполнении я не получаю каких-либо ошибок, однако записи в БД не удаляются. Благодарен за любую помощь!

Answer 1

Для очистки таблицы используйте truncate():

$this->db->truncate('login_history');

В отличие от empty_table(), который генерит DELETE FROM SQL запрос, truncate() генерирует TRUNCATE TABLE, который является более производительным, потому что он удаляет данные путем деаллокации тех страниц, которые хранят табличные данные и только эти операции деаллокации записываются в лог транзакции. DELETE FROM в свою очередь удаляет строки в таблице и для каждой оставляет запись в логе транзакции.

Answer 2
$this->db->empty_table('mytable'); // Produces: DELETE FROM mytable

оф.дока

READ ALSO
Как обращатся к одной из нескольких бд yii2

Как обращатся к одной из нескольких бд yii2

ЗдравствуйтеУ меня есть две абсолютно одинаковые по структуре базы данных, но в них разные записи

376
Парсинг Betfair

Парсинг Betfair

Всем привет

354
Правильный RewriteRule в .htaccess

Правильный RewriteRule в .htaccess

Сейчасhtaccess такой

279