0

仅当表存在时,如何才能删除表的内容?最好sql语句应该是标准的,而不是面向任何数据库的。

请注意,如果表存在,我不想删除它,即

DROP TABLE IF EXISTS foo

PS:我已经检查过 truncate 和 delete 但如果表存在,它们不符合要求。

4

2 回答 2

1

编辑

INFORMATION_SCHEMA通常不会在不同版本之间更改,并且在大多数数据库中都很常见,据我所知,这是检查 SQL 中是否存在表的最正确方法:

IF (EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_NAME = tableName ))
BEGIN
    DELETE FROM tableName
END
于 2013-06-02T20:40:14.830 回答
1

据我所知,“如果存在”没有标准。有些数据库支持它,有些则不支持,并且会给你一个语法异常。

于 2013-06-02T20:51:12.337 回答