2011-05-02 144 views
5

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

我试过了,deleteAll但它只适用于条件,与delete一样,有没有其他方法,我可以清空我的表格?

让我知道!

+0

$这个 - >型号 - > deleteAll('1 =所有记录都被删除1',假);这是在cakephp中清空d表的所有d记录的方法 – 2011-05-02 08:09:52

回答

15

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;'); 
+2

据我所研究,你的第二个选项确实是Cake中唯一的方法。 – vindia 2011-05-02 08:21:05

+3

@vindia你应该可以使用'1 = 1',因为它是有效的mysql。但问题是我认为这会很慢。无论如何,与'TRUNCATE'相比 – JohnP 2011-05-02 08:25:56

+1

它实际上应该是'$ this-> Model-> query('TRUNCATE TABLE tablename');'其中'tablename'被您的实际表名取代。 – devius 2015-03-02 16:08:24

1

尝试设置$级联真在动作作为第二个参数,那么如果相关设置为true,在模型