我正在编写一个简单的SQL脚本,如果它不存在则需要创建一个新数据库,或者如果数据库已经存在则保留数据库(并且不会覆盖它或者删除它的表)。 / p>
我需要这个符合ANSI标准;根据{{3}}:
CREATE DATABASE my_db;
...符合ANSI标准。但如果my_db
已经存在,它无处可说明其行为是什么。
所以我问:我如何编写符合ANSI标准的SQL,如果它不存在则会创建my_db
,或者如果它已经存在则不会对它做任何事情?提前谢谢!
答案 0 :(得分:1)
如果您尝试创建已存在的数据库,则DBMS将抛出错误。确定数据库是否存在的过程,然后创建它是否因DBMS而异。在任何情况下,它都不会丢弃并重新创建数据库。
答案 1 :(得分:0)
您正在使用的命令是为每个供应商指定,并且规范(在least SQL:2008(12.1MB zip存档))没有提到实现创建的实现数据库,将详细信息留给个别供应商。
在发布CREATE DATABASE
时可能会覆盖RDBMS,但根据我的个人经验不太可能。您最好的选择是使用您想要支持的每个RDBMS供应商的产品进行测试。