【问题标题】:CakePHP deleting all records in a tableCakePHP 删除表中的所有记录
【发布时间】:2011-05-02 07:33:24
【问题描述】:

我想使用 CakePHP 语法从我的表中删除所有记录,我该怎么做?

我试过了,deleteAll 但它只适用于条件,delete 的方法相同,还有其他方法可以清空我的表吗?

告诉我!

【问题讨论】:

  • $this->Model->deleteAll('1 = 1', false);这是在cakephp中清空d表的所有d记录的方法

标签: cakephp delete-record


【解决方案1】:

http://book.cakephp.org/2.0/en/models/deleting-data.html

我没有使用 deleteAll() 删除整个表,所以我不知道你是否可以不带参数调用它(编辑:你不能不带参数调用它)。但是,您可以只使用

$this->Model->deleteAll(array('1 = 1'));

但是,我认为如果您只是通过query() 方法运行TRUNCATE SQL 命令会更好。

$this->Model->query('TRUNCATE table;');

【讨论】:

  • 据我研究,您的第二种选择确实是进入 Cake 的唯一途径。
  • @vindia 你应该可以使用1 = 1,因为它是有效的mysql。但问题是我认为它会很慢。无论如何与TRUNCATE相比
  • 它实际上应该是$this->Model->query('TRUNCATE TABLE tablename');,其中tablename 替换为您的实际表名。
【解决方案2】:

尝试在您的操作中将 $cascade true 作为第二个参数设置,然后如果在您的模型中将dependent 设置为 true,则所有记录都将被删除

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2017-04-18
    • 2018-10-04
    • 1970-01-01
    相关资源
    最近更新 更多