update - PostgreSQL 모든 내용 삭제




update on conflict postgres (2)

안녕하세요,하지만 내 postgresql 테이블에있는 모든 데이터를 삭제하려면 테이블 자체가 싶습니다. 내가 어떻게 할 수 있니?


PostgreSQL 데이터베이스의 테이블 / 테이블 내용은 여러 가지 방법으로 삭제할 수 있습니다.

sql을 사용하여 테이블 내용 삭제 :

한 테이블의 내용 삭제 :

TRUNCATE table_name;
DELETE FROM table_name;

명명 된 모든 테이블의 내용 삭제 :

TRUNCATE table_a, table_b, …, table_z;

명명 된 테이블 및 해당 테이블을 참조하는 테이블의 내용을 삭제합니다 (자세한 내용은이 답변에서 나중에 설명합니다).

TRUNCATE table_a, table_b CASCADE;

pgAdmin을 사용하여 테이블 내용 삭제하기 :

한 테이블의 내용 삭제 :

Right click on the table -> Truncate

테이블 및 테이블을 참조하는 내용 삭제 :

Right click on the table -> Truncate Cascaded

삭제와 잘라 내기의 차이 :

문서에서 :

DELETE는 WHERE 절을 만족시키는 행을 지정된 테이블에서 h 제합니다. WHERE 절이 없으면 테이블의 모든 행을 삭제하는 것이 효과적입니다. http://www.postgresql.org/docs/9.3/static/sql-delete.html

TRUNCATE는 테이블에서 모든 행을 제거하는 빠른 메커니즘을 제공하는 PostgreSQL 확장입니다. TRUNCATE는 테이블 세트에서 모든 행을 신속하게 제거합니다. 각 테이블에 대한 규정되지 않은 DELETE와 동일한 효과가 있지만 실제로 테이블을 스캔하지 않으므로 더 빠릅니다. 또한 후속 VACUUM 작업을 요구하기보다는 즉시 디스크 공간을 재 확보합니다. 이것은 대형 테이블에서 가장 유용합니다. http://www.postgresql.org/docs/9.1/static/sql-truncate.html

다른 테이블에서 참조 된 테이블 작업 :

하나 이상의 테이블을 가지고있는 데이터베이스를 가지고있을 때 그 테이블은 아마 관계가 있습니다. 예를 들어 세 개의 테이블이 있습니다.

create table customers (
customer_id int not null,
name varchar(20),
surname varchar(30),
constraint pk_customer primary key (customer_id)
);

create table orders (
order_id int not null,
number int not null,
customer_id int not null,
constraint pk_order primary key (order_id),
constraint fk_customer foreign key (customer_id) references customers(customer_id)
);

create table loyalty_cards (
card_id int not null,
card_number varchar(10) not null,
customer_id int not null,
constraint pk_card primary key (card_id),
constraint fk_customer foreign key (customer_id) references customers(customer_id)
);

그리고 일부 테이블에 대한 준비된 데이터 :

insert into customers values (1, 'John', 'Smith');

insert into orders values 
(10, 1000, 1),
(11, 1009, 1),
(12, 1010, 1);        

insert into loyalty_cards values (100, 'A123456789', 1);

테이블 주문은 테이블 고객을 참조하고 테이블 loyalty_cards는 테이블 고객을 참조합니다. 다른 테이블 / s (다른 테이블 / s가 명명 된 테이블에 외래 키 제약 조건을 가짐)에서 참조하는 테이블을 TRUNCATE / DELETE하려고하면 오류가 발생합니다. 세 개의 모든 테이블에서 내용을 삭제하려면이 모든 테이블의 이름을 지정해야합니다 (순서는 중요하지 않음)

TRUNCATE customers, loyalty_cards, orders;

또는 CASCADE 키워드로 참조 된 테이블 (하나 이상의 테이블 만 지정할 수 있음)

TRUNCATE customers CASCADE;

pgAdmin도 마찬가지입니다. 고객 표를 마우스 오른쪽 단추로 클릭하고 계단식 자르기를 선택하십시오.








postgresql