只有在ANSI sql不存在时才创建表

时间:2011-05-27 16:00:03

标签: sql database ansi-sql

我正在尝试动态创建一个SQL表,只有它尚未存在。我在互联网上看到了很多解决方案,但它们通常依赖于特定的数据库,而我正在努力寻找最通用的解决方案。

我一直在考虑始终运行CREATE命令然后假设如果它失败则表存在并且我可以开始将数据插入其中。我在这个推理中看不到任何缺陷(不包括性能问题),但我可能错了。

这是一种可接受的方法吗?

您能否建议其他与数据库无关的方法,或使用所有RDBMS都接受的ANSI SQL的方法?

3 个答案:

答案 0 :(得分:0)

如果有一张表 - 比如说 - EMP,这是否真的意味着它与您期望的EMP相同?

查询表结构的相应数据字典,或者用大量错误检查和条件逻辑填充代码......

答案 1 :(得分:0)

INFORMATION_SCHEMA是ANSI SQL标准的一部分,因此您应该能够:

IF NOT EXISTS(SELECT NULL FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'YourTable')
    CREATE TABLE...

答案 2 :(得分:-1)

怎么样:

create table if not exists