问题描述
||
我试图仅在尚不存在的情况下动态创建sql表。我在Internet上看到了许多解决方案,但是当我试图找到最通用的解决方案时,它们通常依赖于特定的数据库。
我一直在考虑始终运行CREATE命令,然后假设如果失败,则该表存在并且可以开始向其中插入数据。我在这种推理中看不到任何缺陷(不计算性能问题),但是我可能是错的。
这是可以接受的方法吗?
您能否建议其他独立于数据库的方法,或使用所有RDBMS都接受的ANSI sql的其他方法?
解决方法
如果有一个表-例如-EMP,这是否真的意味着它与您期望的EMP相同?
查询表结构的适当数据字典,或者用大量错误检查和条件逻辑填充代码...
, “ 0”是ANSI SQL标准的一部分,因此您应该能够:
IF NOT EXISTS(SELECT NULL FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = \'YourTable\')
CREATE TABLE...
, 怎么样:create table if not exists