国产探花免费观看_亚洲丰满少妇自慰呻吟_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章:優化。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大安市| 依安县| 汕尾市| 盐城市| 通山县| 潞城市| 秦安县| 渝北区| 葫芦岛市| 乌兰县| 庄浪县| 江北区| 汝阳县| 阿拉善右旗| 鲜城| 蒙城县| 綦江县| 孝昌县| 武清区| 桐庐县| 万宁市| 广昌县| 平塘县| 宿迁市| 衡东县| 塘沽区| 德令哈市| 保德县| 杭锦后旗| 东台市| 镇巴县| 巫山县| 鄂伦春自治旗| 济源市| 克什克腾旗| 蛟河市| 北京市| 晋州市| 伊宁市| 江口县| 潮安县|