TRUNCATE_(SQL)
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "TRUNCATE" SQL ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2023年11月)

TRUNCATE または TRUNCATE TABLE ステートメントは、テーブルから全てのを削除するSQLである。データベースが持つ整合性を維持する機構をスキップすることで高速な削除を実現している場合が多い。削除する行それぞれを記録するためのトランザクションログの出力を避けることで、効率的に全ての行を削除できる。

「TRUNCATE TABLE 表名」は「DELETE FROM 表名」とほぼ等価だが、以下の点で異なる。

WHERE 句を指定できない。全ての行は一括削除される。

対象のテーブルの排他ロックを取得する。

外部キーで参照されるテーブルに対しては実行できない。外部キーによる整合性の確認を行わないためである。

Oracle DatabaseMySQL の一部のストレージエンジンでは、TRUNCATE 後、自動的にコミットが行われる。TRUNCATE による削除はロールバックできない。

PostgreSQL のように、TRUNCATE をトランザクション内で実行でき、ロールバックも可能なデータベースも存在する。対象のテーブルを「古いバージョン」としてトランザクションの完了時まで保持することで実現されている。


Microsoft SQL Server では TRUNCATE TABLE ステートメントはレプリケーションやログシッピングの対象となっているテーブルに対して実行できない。どちらも遠隔のデータベースの一貫性を保つためにトランザクションログを利用しているためである。

構文TRUNCATE [TABLE] テーブル名 [, テーブル名]

多くのデータベース製品では TABLE は省略可能である。










データベース管理システム


データモデル

関係モデル

データベース設計

正規化

参照整合性

関係代数

関係論理

データベース管理システム

関係データベース管理システム

オブジェクト関係データベース

分散データベース

トランザクション処理

概念
データベース

ACID

CRUD

3値論理NULL

候補キー

外部キー

主キー

スーパーキー

代理キー

オブジェクト

関係 ()

ビュー

トランザクション

ログ

トリガ

索引

ストアドプロシージャ

カーソル

分割

SQL

SELECT

INSERT

UPDATE

MERGE

DELETE

JOIN

CREATE

DROP

COMMIT

ROLLBACK

TRUNCATE

ALTER

WHERE

SAVEPOINT

構成要素

並行性制御

データ辞書

JDBC

ODBC

データベース言語

問い合わせ言語

クエリ最適化

クエリ実行計画


データベース製品
関係データベース管理システムの比較データベース接続クライアント カテゴリ


記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:10 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef