2014-11-17 55 views
4

如何删除表数据但不删除表列名?如何在不删除列名的情况下删除表数据

  ID | NAME  | AGE | ADDRESS | SALARY | 
     +----+----------+-----+-----------+----------+ 
     | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | 
     | 2 | Khilan | 25 | Delhi  | 1500.00 | 
     | 3 | kaushik | 23 | Kota  | 2000.00 | 
     | 4 | Chaitali | 25 | Mumbai | 6500.00 | 
     | 5 | Hardik | 27 | Bhopal | 8500.00 | 
     | 6 | Komal | 22 | MP  | 4500.00 | 
     | 7 | Muffy | 24 | Indore | 10000.00 | 
     +----+----------+-----+-----------+---------- 

我必须删除表的所有内容,但不应删除表列名称。

DELETE FROM table_name 
    WHERE [condition]; 
     ID | NAME  | AGE | ADDRESS | SALARY | 

回答

3

只需使用

DELETE FROM table_name; 

or 

DELETE * FROM table_name; 

如果你仍然想添加条件

DELETE FROM table_name where 1 =1; 
0

参考书目:
SQL - truncate table命令http://goo.gl/YN7N9Y
SQL - SY ntax http://goo.gl/viyYFU

SQL TRUNCATE TABLE命令用于从现有表中删除完整数据。

您也可以使用DROP TABLE命令删除完整的表,但它会从数据库中删除完整的表结构,如果您希望存储某些数据,则需要再次重新创建此表。

语法:

TRUNCATE TABLE的基本语法如下:

TRUNCATE TABLE table_name; 

实施例: 考虑具有以下记录CUSTOMERS表:

+----+----------+-----+-----------+----------+ 
| ID | NAME  | AGE | ADDRESS | SALARY | 
+----+----------+-----+-----------+----------+ 
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 | 
| 2 | Khilan | 25 | Delhi  | 1500.00 | 
| 3 | kaushik | 23 | Kota  | 2000.00 | 
| 4 | Chaitali | 25 | Mumbai | 6500.00 | 
| 5 | Hardik | 27 | Bhopal | 8500.00 | 
| 6 | Komal | 22 | MP  | 4500.00 | 
| 7 | Muffy | 24 | Indore | 10000.00 | 
+----+----------+-----+-----------+----------+ 

以下是示例截断:

SQL > TRUNCATE TABLE CUSTOMERS; 

现在,CUSTOMERS表将被截断,并以下是来自SELECT语句的输出:

SQL> SELECT * FROM CUSTOMERS; 
Empty set (0.00 sec) 
+0

截断不是交易安全,不会调用删除触发器,隐含的承诺,这几乎是像删除并重新创建。所以最好不要使用。 –

+0

@TirupathiRaju,truncate仅用于DB开发案例,避免生产案例,我们可以使用它。 :) –

+0

如果是这样的话应该没问题。但是,即使它不会提供有关删除多少行的信息,请做一个记录。 Ofcourse截断将发生几秒钟,相比之下,逐行删除 –

2

这相当于DELETE语句:

TRUNCATE TABLE yourTableName; 
+0

Truncate不是事务安全的,不会调用删除触发器,隐式提交,它几乎就像删除并重新创建。所以最好不要使用。 –

+0

@TirupathiRaju DELETE,TRUNCATE和DROP都有缺点和优点,它们都依赖于实现。 –

相关问题