重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
//刪除是記錄是用sql語(yǔ)句,比如 delete from xxx(table) where id=1 刪除 id=1的記錄
創(chuàng)新互聯(lián)建站于2013年開(kāi)始,先為焦作等服務(wù)建站,焦作等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為焦作企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
//數(shù)據(jù)庫(kù)操作后,手動(dòng)關(guān)閉是好得習(xí)慣,不手動(dòng)關(guān)閉,php程序也會(huì)最后自動(dòng)關(guān)閉
參考方法:
delete from 表名;
truncate table 表名;
不帶where參數(shù)的delete語(yǔ)句可以刪除mysql表中所有內(nèi)容,使用truncate table也可以清空mysql表中所有內(nèi)容。效率上truncate比delete快,但truncate刪除后不記錄mysql日志,不可以恢復(fù)數(shù)據(jù)。
delete的效果有點(diǎn)像將mysql表中所有記錄一條一條刪除到刪完,而truncate相當(dāng)于保留mysql表的結(jié)構(gòu),重新創(chuàng)建了這個(gè)表,所有的狀態(tài)都相當(dāng)于新表。
這個(gè)需要分兩個(gè)步驟完成。
1、刪除數(shù)據(jù)庫(kù)數(shù)據(jù);
2、刪除文件。
一般存入數(shù)據(jù)庫(kù)的數(shù)據(jù)和文件都有關(guān)聯(lián)性,如文件名存在數(shù)據(jù)庫(kù)某字段中,這時(shí)候可以查詢(xún)出要?jiǎng)h除的某條數(shù)據(jù),找到這條數(shù)據(jù)中的文件名,然后先將這條數(shù)據(jù)刪除,再把文件名對(duì)應(yīng)的文件刪除。
刪除數(shù)據(jù)庫(kù)數(shù)據(jù)使用delete語(yǔ)法,刪除服務(wù)器文件使用unlink函數(shù)。
MySQL為我們提供了delete和truncate語(yǔ)句來(lái)刪除數(shù)據(jù)。
delete 語(yǔ)句的定義:
刪除數(shù)據(jù)的時(shí)候用的大多都是 delete 語(yǔ)句。現(xiàn)在讓我們來(lái)看一下 delete語(yǔ)句的定義。
DELETE?[LOW_PRIORITY]?[QUICK]?[IGNORE]?FROM?tbl_name
[WHERE?where_definition]
[ORDER BY?...]
[LIMIT?row_count]
delete?from?friends?where?user_name?=?'simaopig';
delete 注意事項(xiàng):
從語(yǔ)法結(jié)構(gòu)中,我們就可以看出,和 update 語(yǔ)法一樣,我們是可以省略 where 子句的。不過(guò)這是一個(gè)很危險(xiǎn)的行為。因?yàn)槿绻恢付?where 子句,delete 將刪除表中所有的記錄,而且是立即刪除.
truncate 語(yǔ)句的簡(jiǎn)單說(shuō)明:
這個(gè)語(yǔ)句之前我也沒(méi)有接觸過(guò),也沒(méi)有使用過(guò)。因?yàn)橐话闱闆r下,刪除數(shù)據(jù)大家都在使用delete語(yǔ)句。其實(shí)這個(gè)truncate 命令很簡(jiǎn)單,它的意思是:刪除表的所有記錄。相當(dāng)于 delete 語(yǔ)句不寫(xiě) where 子句一樣。其語(yǔ)法結(jié)構(gòu)為:
TRUNCATE?[TABLE]?tbl_name
這里簡(jiǎn)單的給出個(gè)示例,我想刪除 friends 表中所有的記錄,可以使用如下語(yǔ)句:
truncate?table?friends;
truncate 和 delete的效率問(wèn)題:
如果想要?jiǎng)h除表的所有數(shù)據(jù),truncate語(yǔ)句要比 delete 語(yǔ)句快。因?yàn)?truncate 刪除了表,然后根據(jù)表結(jié)構(gòu)重新建立它,而 delete 刪除的是記錄,并沒(méi)有嘗試去修改表。這也是為什么當(dāng)向一個(gè)使用 delete 清空的表插入數(shù)據(jù)時(shí),MySQL 會(huì)記住前面產(chǎn)生的AUTOINCREMENT序列,并且繼續(xù)利用它對(duì)AUTOINCREMENT字段編號(hào)。而truncate刪除表后,表是從1開(kāi)始為autoincrement字段編號(hào)。
不過(guò)truncate命令快規(guī)快,卻不像delete命令那樣對(duì)事務(wù)處理是安全的。因此,如果我們想要執(zhí)行truncate刪除的表正在進(jìn)行事務(wù)處理,這個(gè)命令就會(huì)產(chǎn)生退出并產(chǎn)生錯(cuò)誤信息。
sample?code:
?php?
if($del_id!=""){?
$del_num=count($del_id);?
for($i=0;$i$del_num;$i++){?
mysql_query("Delete?from?news?where?id='$del_id[$i]'");?
}??
echo("script?type='text/javascript'alert('刪除成功!');history.back();/script");?
}else{?
echo("script?type='text/javascript'alert('請(qǐng)先選擇項(xiàng)目!');history.back();/script");?
}?
?
$sql = ' TRUNCATE TABLE `table_name` ' ; // 清空表數(shù)據(jù),并重置自增主鍵id 從1重頭開(kāi)始自增;
mysql_query ( $sql ) ;
原理就是執(zhí)行一條清空表數(shù)據(jù)的 sql 語(yǔ)句;