国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL DELETE語法使用詳細解析

2024-07-24 12:48:38
字體:
來源:轉載
供稿:網友

以下的文章主要描述的是MySQL DELETE語法的詳細解析,首先我們是從單表語法與多表語法的示例開始的,假如你對MySQL DELETE語法的相關內容十分感興趣的話,你就可以瀏覽以下的文章對其有個更好的了解。

單表語法:

復制代碼 代碼如下:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name  
[WHERE where_definition]  
[ORDER BY ...]  
[LIMIT row_count]

多表語法:

復制代碼 代碼如下:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]  
tbl_name[.*] [, tbl_name[.*] ...]  
FROM table_references  
[WHERE where_definition]

或:

復制代碼 代碼如下:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]  
FROM tbl_name[.*] [, tbl_name[.*] ...]  
USING table_references  
[WHERE where_definition]

tbl_name中有些行滿足由where_definition給定的條件。MySQL DELETE用于刪除這些行,并返回被刪除的記錄的數目。

如果您編寫的DELETE語句中沒有WHERE子句,則所有的行都被刪除。當您不想知道被刪除的行的數目時,有一個更快的方法,即使用TRUNCATE TABLE。

如果您刪除的行中包括用于AUTO_INCREMENT列的最大值,則該值被重新用于BDB表,但是不會被用于MyISAM表或InnoDB表。如果您在AUTOCOMMIT模式下使用DELETE FROM tbl_name(不含WHERE子句)刪除表中的所有行,則對于所有的表類型(除InnoDB和MyISAM外),序列重新編排。對于InnoDB表,此項操作有一些例外。

對于MyISAM和BDB表,您可以把AUTO_INCREMENT次級列指定到一個多列關鍵字中。在這種情況下,從序列的頂端被刪除的值被再次使用,甚至對于MyISAM表也如此。DELETE語句支持以下修飾符:

如果您指定LOW_PRIORITY,則DELETE的執行被延遲,直到沒有其它客戶端讀取本表時再執行。

對于MyISAM表,如果您使用QUICK關鍵詞,則在刪除過程中,存儲引擎不會合并索引端結點,這樣可以加快部分種類的刪除操作的速度。

在刪除行的過程中,IGNORE關鍵詞會使MySQL忽略所有的錯誤。(在分析階段遇到的錯誤會以常規方式處理。)由于使用本選項而被忽略的錯誤會作為警告返回。

刪除操作的速度會受到一些因素的影響,這些因素在7.2.18節,“MySQL DELETE語句的速度”中進行了討論。

在MyISAM表中,被刪除的記錄被保留在一個帶鏈接的清單中,后續的INSERT操作會重新使用舊的記錄位置。要重新使用未使用的空間并減小文件的尺寸,則使用OPTIMIZE TABLE語句或myisamchk應用程序重新編排表。OPTIMIZE TABLE更簡便,但是myisamchk速度更快。請參見13.5.2.5節,“OPTIMIZE TABLE語法”和第7章:優化。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漳州市| 铅山县| 景谷| 久治县| 定西市| 京山县| 丰宁| 宁津县| 攀枝花市| 汉阴县| 普安县| 民勤县| 精河县| 和平区| 固安县| 吴忠市| 虞城县| 英山县| 武义县| 沁源县| 池州市| 元朗区| 闻喜县| 承德县| 洛宁县| 通城县| 烟台市| 集安市| 集安市| 文昌市| 泸州市| 江油市| 白朗县| 璧山县| 得荣县| 井冈山市| 乌恰县| 东兴市| 横山县| 河南省| 南漳县|