🛢️
PostgreSQL
Grokking Algorithm
  • Content
  • Environment
  • Getting Started
    • Introduction
      • What is PostgreSQL
      • Introduction to PostgreSQL sample database
    • Postgres on Windows
      • Install PostgreSQL on Windows
      • Connect to PostgreSQL database server
      • Load the sample database into the PostgreSQL database server
    • Postgres on Linux
    • Install PostgreSQL on macOS
  • Basic
    • Querying Data
      • SELECT
      • Column alias
      • ORDER BY
      • SELECT DISTINCT
    • Filtering Data
      • WHERE
      • AND
      • OR
      • LIMIT
      • FETCH
      • IN
      • BETWEEN
      • LIKE
      • IS NULL
    • Joining Multiple tables
      • Joins
      • Table aliases
      • INNER JOIN
      • LEFT JOIN
      • RIGHT JOIN
      • SELF JOIN
      • FULL OUTER JOIN
      • CROSS JOIN
      • NATURAL JOIN
    • Grouping data
      • GROUP BY
      • HAVING
    • Set Operations
      • UNION
      • INTERSECT
      • EXCEPT
    • Grouping sets, Cube, and Rollup
      • Grouping sets
      • CUBE
      • ROLLUP
    • Subquery
      • Subquery
      • ANY
      • ALL
      • EXISTS
    • Common Table Expressions
      • PostgreSQL CTE
      • Recursive query using CTEs
    • Modifying Data
      • Insert
      • Insert multiple rows
      • Update
      • Update join
      • Delete
      • Upsert
    • Transactions
      • PostgreSQL Transaction
    • Import & Export Data
      • Import CSV file into Table
      • Export PostgreSQL Table to CSV file
    • Managing Tables
      • Data types
      • Create a table
      • Select into
      • Create table as
      • Auto-increment
      • Sequences
      • Identity column
      • Alter table
      • Rename table
      • Add column
      • Drop column
      • Change column data type
      • Rename column
      • Drop table
      • Truncate table
      • Temporary table
      • Copy a table
    • Understanding PostgreSQL constraints
      • Primary key
      • Foreign key
      • UNIQUE constraint
      • CHECK constraint
      • NOT NULL constraint
    • PostgreSQL Data Types in Depth
      • Boolean
      • CHAR, VARCHAR and TEXT
      • NUMERIC
      • Integer
      • DATE
      • Timestamp
      • Interval
      • TIME
      • UUID
      • Array
      • hstore
      • JSON
      • User-defined data types
  • Advanced
  • PG-PGSQL
  • Functions
  • Adminstration
  • API
Powered by GitBook
On this page
  • Barcha ma'lumotlarni bitta jadvaldan olib tashlang
  • Barcha ma'lumotlarni bitta jadvaldan olib tashlang
  • Foreign key kalitlari havolalari bo'lgan jadvaldan barcha ma'lumotlarni olib tashlang
  • PostgreSQL TRUNCATE TABLE va ON DELETE trigger
  • PostgreSQL TRUNCATE TABLE va tranzaksiya
  • Xulosa

Was this helpful?

Edit on GitHub
  1. Basic
  2. Managing Tables

Truncate table

Ushbu qo'llanmada siz katta jadvallardagi barcha ma'lumotlarni tezda o'chirish uchun PostgreSQL TRUNCATE TABLE bayonotidan qanday foydalanishni o'rganasiz.

Jadvaldagi barcha ma'lumotlarni o'chirish uchun siz DELETE iborasidan foydalanasiz. Biroq, juda ko'p ma'lumotlarga ega bo'lgan jadvaldagi barcha ma'lumotlarni o'chirish uchun DELETE iborasidan foydalansangiz, u samarali emas. Bunday holda siz TRUNCATE TABLE bayonotidan foydalanishingiz kerak:

TRUNCATE TABLE table_name;

TRUNCATE TABLE bayonoti jadvaldagi barcha maʼlumotlarni skanerdan oʻtkazmasdan oʻchirib tashlaydi. Shuning uchun u DELETE iborasidan tezroq ishlaydi.

Bundan tashqari, TRUNCATE TABLE iborasi xotirani darhol qaytarib oladi, shuning uchun siz keyingi VACUMM operatsiyasini bajarishingiz shart emas, bu katta jadvallar uchun foydalidir.

Barcha ma'lumotlarni bitta jadvaldan olib tashlang

TRUNCATE TABLE bayonotining eng oddiy shakli quyidagicha:

TRUNCATE TABLE table_name;

Quyidagi misolda invoices jadvalidagi barcha ma'lumotlarni o'chirish uchun TRUNCATE TABLE iborasi qo'llaniladi:

TRUNCATE TABLE invoices;

Maʼlumotni oʻchirishdan tashqari, identifikator ustunidagi qiymatlarni quyidagi kabi RESTART IDENTITY opsiyasidan foydalanib tiklashingiz mumkin:

TRUNCATE TABLE table_name 
RESTART IDENTITY;

Masalan, quyidagi bayonot invoices jadvalidagi barcha qatorlarni olib tashlaydi va invoice_no ustuni bilan bog'langan ketma-ketlikni tiklaydi:

TRUNCATE TABLE invoices 
RESTART IDENTITY;

Odatiy boʻlib, TRUNCATE TABLE iborasi CONTINUE IDENTITY opsiyasidan foydalanadi. Ushbu parametr, asosan, jadvaldagi ustun bilan bog'langan qiymatni ketma-ketlikda qayta ishga tushirmaydi.

Barcha ma'lumotlarni bitta jadvaldan olib tashlang

Bir vaqtning o'zida bir nechta jadvaldagi barcha ma'lumotlarni o'chirish uchun har bir jadvalni vergul (,) bilan quyidagicha ajratasiz:

TRUNCATE TABLE 
    table_name1, 
    table_name2,
    ...;

Masalan, quyidagi bayonot invoices va customers jadvallaridan barcha ma'lumotlarni olib tashlaydi:

TRUNCATE TABLE invoices, customers;

Foreign key kalitlari havolalari bo'lgan jadvaldan barcha ma'lumotlarni olib tashlang

Amalda, siz kesmoqchi bo'lgan jadvalda ko'pincha TRUNCATE TABLE bayonotida ko'rsatilmagan boshqa jadvallarning xorijiy kalit havolalari mavjud.

Odatiy boʻlib, TRUNCATE TABLE iborasi tashqi kalit havolalari boʻlgan jadvaldan hech qanday maʼlumotni olib tashlamaydi.

Jadval va boshqa jadvallardan ma'lumotlarni olib tashlash uchun chet el kalitlari jadvalga havola qilinadi, siz TRUNCATE TABLE bayonotida CASCADE opsiyasidan quyidagi tarzda foydalanasiz:

TRUNCATE TABLE table_name 
CASCADE;

Quyidagi misol invoices jadvalidan ma'lumotlarni o'chiradi va xorijiy kalit cheklovlari orqali invoices jadvaliga havola qiladigan boshqa jadvallar:

TRUNCATE TABLE invoices CASCADE;

CASCADE opsiyasi qoʻshimcha eʼtibor bilan qoʻllanilishi kerak, aks holda siz istamagan jadvallardan maʼlumotlarni oʻchirib tashlashingiz mumkin.

Odatiy bo'lib, TRUNCATE TABLE iborasi RESTRICT opsiyasidan foydalanadi, bu sizga tashqi kalit cheklash havolalariga ega bo'lgan jadvalni kesishingizga to'sqinlik qiladi.

PostgreSQL TRUNCATE TABLE va ON DELETE trigger

TRUNCATE TABLE iborasi jadvaldagi barcha maʼlumotlarni oʻchirib tashlasa ham, jadval bilan bogʻliq boʻlgan ON DELETE triggerlarini ishga tushirmaydi.

Jadvalga TRUNCATE TABLE buyrug'i qo'llanilganda, triggerni ishga tushirish uchun siz ushbu jadval uchun BEFORE TRUNCATE va/yoki AFTER TRUNCATE triggerlarini belgilashingiz kerak.

PostgreSQL TRUNCATE TABLE va tranzaksiya

TRUNCATE TABLE tranzaksiya uchun xavfsizdir. Bu shuni anglatadiki, agar siz uni tranzaktsiyaga joylashtirsangiz, uni xavfsiz tarzda qaytarib olishingiz mumkin.

Xulosa

  • Katta jadvaldagi barcha ma'lumotlarni o'chirish uchun TRUNCATE TABLE iborasidan foydalaning.

  • Jadvalni va jadvalga tashqi kalit cheklovi orqali murojaat qiladigan boshqa jadvallarni kesish uchun CASCADE opsiyasidan foydalaning.

  • TRUNCATE TABLE DELETE triggerida ishga tushmaydi. Buning o'rniga, BEFORE TRUNCATE va AFTER TRUNCATE triggerlarini ishga tushiradi.

  • TRUNCATE TABLE bayonoti tranzaksiya uchun xavfsizdir.

PreviousDrop tableNextTemporary table

Last updated 1 year ago

Was this helpful?

©

postgresqltutorial.com