## 刪除數據
~~~
// 根據主鍵刪除
Db::table('think_user')->delete(1);
Db::table('think_user')->delete([1, 2, 3]);
// 條件刪除
Db::table('think_user')->where('id', 1)->delete();
Db::table('think_user')->where('id', '<', 10)->delete();
~~~
最終生成的SQL語句可能是:
~~~
DELETE FROM `think_user` WHERE `id` = 1
DELETE FROM `think_user` WHERE `id` IN (1,2,3)
DELETE FROM `think_user` WHERE `id` = 1
DELETE FROM `think_user` WHERE `id` < 10
~~~
> `delete `方法返回影響數據的條數,沒有刪除任何數據返回 0
出于安全考慮,如果不帶任何條件調用`delete`方法會提示錯誤,如果你確實需要刪除所有數據,可以使用
~~~
// 無條件刪除所有數據
Db::name('user')->delete(true);
~~~
最終生成的SQL語句是(刪除了表的所有數據):
~~~
DELETE FROM `think_user`
~~~
>[danger] 一般情況下,業務數據不建議真實刪除數據,系統提供了軟刪除機制(模型中使用軟刪除更為方便)。
~~~
// 軟刪除數據 使用delete_time字段標記刪除
Db::name('user')
->where('id', 1)
->useSoftDelete('delete_time',time())
->delete();
~~~
實際生成的SQL語句可能如下(執行的是`UPDATE`操作):
~~~
UPDATE `think_user` SET `delete_time` = '1515745214' WHERE `id` = 1
~~~
`useSoftDelete`方法表示使用軟刪除,并且指定軟刪除字段為`delete_time`,寫入數據為當前的時間戳。
- 簡介
- 數據庫配置
- 分布式數據庫
- 查詢構造器
- 查詢數據
- 新增數據
- 更新數據
- 刪除數據
- 鏈式操作
- Where
- Table
- Alias
- Field
- Strict
- Limit
- Page
- Order
- Group
- Having
- Join
- Union
- Distinct
- Lock
- Cache
- Comment
- FetchSql
- Force
- Partition
- Replace
- FailException
- Extra
- Duplicate
- Sequence
- Procedure
- View
- 聚合查詢
- 分頁查詢
- 時間查詢
- 高級查詢
- 子查詢
- 原生查詢
- 事務操作
- 存儲過程
- 查詢事件
- JSON字段
- 模型
- 定義
- 新增
- 更新
- 刪除
- 查詢
- 查詢范圍
- 只讀字段
- JSON字段
- 自動時間寫入
- 獲取器
- 修改器
- 搜索器
- 類型轉換
- 模型輸出
- 模型事件
- 虛擬模型
- 關聯
- 一對一關聯
- 一對多關聯
- 遠程一對多
- 遠程一對一
- 多對多關聯
- 多態一對多
- 多態一對一
- 關聯預載入
- 關聯統計
- 關聯輸出
- SQL監聽
- 緩存機制
- 字段緩存
- 查詢緩存
- 擴展
- 自定義查詢類
- 自定義數據庫驅動