4

我正在尝试仅在 SQL 表不存在的情况下动态创建它。我在互联网上看到了很多解决方案,但它们通常依赖于特定的数据库,而我正在尝试找到最通用的解决方案。

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

这是可接受的方法吗?

您能否建议其他独立于数据库的方法,或者使用所有 RDBMS 都接受的 ANSI SQL 的方法?

4

3 回答 3

0

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

要么为表结构查询适当的数据字典,要么用大量的错误检查和条件逻辑填充你的代码......

于 2011-05-27T16:02:28.787 回答
0

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

IF NOT EXISTS(SELECT NULL FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'YourTable')
    CREATE TABLE...
于 2011-05-27T16:06:19.220 回答
-1

关于什么:

create table if not exists

于 2011-05-27T16:02:28.973 回答