2011-05-02 184 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,在模型