<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # DELETE ## Name DELETE?--?刪除一個表中的行 ## Synopsis ``` [ WITH [ RECURSIVE ] _with_query_ [, ...] ] DELETE FROM [ ONLY ] _table_name_ [ * ] [ [ AS ] _alias_ ] [ USING _using_list_ ] [ WHERE _condition_ | WHERE CURRENT OF _cursor_name_ ] [ RETURNING * | _output_expression_ [ [ AS ] _output_name_ ] [, ...] ] ``` ## 描述 `DELETE`從指定的表里刪除滿足`WHERE`子句的行。 如果`WHERE`子句不存在,將刪除表中所有行。結果是一個有效的空表。 > **Tip:** [TRUNCATE](#calibre_link-89)是一個PostgreSQL擴展, 它提供一個更快的從表中刪除所有行的機制。 使用數據庫中其它表的信息刪除某個表中的數據行有兩個辦法:使用子查詢, 或者在`USING`子句中聲明額外的表。哪種技巧更合適取決于特定的環境。 可選的`RETURNING`子句將使得`DELETE`計算并返回實際被刪除了的行。 任何使用表字段的表達式和/或`USING`中提到的其他表的字段, 都可以用于計算。`RETURNING`列表的語法和`SELECT`輸出列表的語法相同。 要對表進行刪除,你必須對它有`DELETE`權限,同樣也必須有`USING` 子句的表以及`_condition_`上讀取的表的 `SELECT`權限。 ## 參數 `_with_query_` `WITH`子句允許指定一個或多個可以通過`DELETE`查詢中的名字引用的子查詢。 參閱[Section 7.8](#calibre_link-515)和[SELECT](#calibre_link-104)獲取詳細信息。 `_table_name_` 要刪除行的表的名字(可以有模式修飾)。如果在表的名字前指定了`ONLY`, 則只從指定的表中刪除匹配的行。如果沒有指定`ONLY`,則從指定的表及其所有子表中的刪除匹配的行。 可選的,可以在表名的后面指定`*`以明確的指出包括后代表。 `_alias_` 目標表的別名。如果提供了別名,那么它將完全掩蓋實際的表名。例如給定`DELETE FROM foo AS f` 之后,`DELETE`語句的剩余部分必須使用`f`而不是`foo`來引用該表。 `_using_list_` 表表達式列表,允許來自其他表的列出現在`WHERE`條件中。這與可以在 `SELECT`命令的[_FROM_ 子句](#calibre_link-516) 中指定的表列表相似。例如,可以為該表的名字聲明一個別名。不要在 `_using_list_`里重復目標表,除非你希望產生一個自連接。 `_condition_` 一個返回`boolean`值的表達式,只用表達式返回`true`的行被刪除。 `_cursor_name_` 在`WHERE CURRENT OF`條件中使用的游標的名字。要刪除的行是最近從這個游標獲取到的。 該游標必須是一個在`DELETE`的目標表中非分組的查詢。請注意,`WHERE CURRENT OF` 不能和一個布爾條件一起指定,參閱[DECLARE](#calibre_link-72)獲取更多關于和`WHERE CURRENT OF` 一起使用游標的信息。 `_output_expression_` 計算并在刪除行后由`DELETE`命令返回的一個表達式。該表達式可以使用由 `_table_name_`命名的表的任意字段名或在`USING` 中列出的表。`*`返回所有字段。 `_output_name_` 用于返回的列名稱。 ## 輸出 成功時,`DELETE`命令返回形如 ``` DELETE _count_ ``` 的標簽。`_count_`是被刪除的行數。 請注意,當刪除被`BEFORE DELETE`觸發器取消時,這個數字可能小于匹配 `_condition_`的行數。 如果`_count_`為 0 則沒有行被該查詢刪除, 這個不認為是錯誤。 如果`DELETE`命令包含一個`RETURNING`子句,那么其結果非常類似于 `SELECT`語句基于`RETURNING`子句中包含的字段和值列表的結果, 只是基于被刪除的行進行計算而已。 ## 注意 PostgreSQL允許你在`WHERE`條件里引用其它表的字段, 方法是在`USING`子句里聲明其它表。比如,要刪除給出制片商制作的所有電影,可以: ``` DELETE FROM films USING producers WHERE producer_id = producers.id AND producers.name = 'foo'; ``` 這里實際發生的事情是在`films`和`producers`之間的一個連接, 然后所有成功連接的`films`行都標記為刪除。這個語法不是標準的,更標準的語法是這么做: ``` DELETE FROM films WHERE producer_id IN (SELECT id FROM producers WHERE name = 'foo'); ``` 有時候連接風格比子查詢風格更容易寫或者執行更快。 ## 例子 刪除所有電影(films)但不刪除音樂(musicals): ``` DELETE FROM films WHERE kind <> 'Musical'; ``` 清空`films`表: ``` DELETE FROM films; ``` 從 tasks 表及其子表中刪除,并返回所有被刪除的行: ``` DELETE FROM tasks WHERE status = 'DONE' RETURNING *; ``` 刪除游標`c_tasks`當前指向的`tasks`的行: ``` DELETE FROM tasks WHERE CURRENT OF c_tasks; ``` ## 兼容性 這條命令遵循SQL標準,但是`USING`和`RETURNING` 子句是PostgreSQL的擴展,就像在`DELETE`中使用`WITH`。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看