0

我正在编写一个简单的 SQL 脚本,如果它不存在,则需要创建一个新数据库,或者如果它已经存在,则单独保留该数据库(而不是覆盖它或 drop-n-swap 它的表)。

我需要它符合 ANSI;根据W3 学校

CREATE DATABASE my_db;

...符合 ANSI 标准。my_db但是如果已经存在,它没有任何地方说明它的行为是什么。

所以我问:我如何编写符合 ANSI 的 SQL,my_db如果它不存在则创建,或者如果它已经存在则不对其做任何事情?提前致谢!

4

2 回答 2

1

如果您尝试创建一个已经存在的数据库,您的 DBMS 将抛出错误。确定数据库是否存在,如果不存在则创建的过程因 DBMS 而异。在任何情况下,它都不会删除并重新创建数据库。

于 2013-07-15T16:27:58.250 回答
0

您使用的命令是按 vendor 指定的,并且规范(至少 SQL:2008(12.1MB zip 存档))没有提到创建数据库的实现是什么,将细节留给各个供应商。

可能有一个 RDBMS 在发布时可能会覆盖,CREATE DATABASE但根据我个人的经验,这不太可能。您最好的选择是使用您打算支持的每个 RDBMS 供应商的产品进行测试。

于 2013-07-15T16:30:51.743 回答