是否会创建已存在的SQL表覆盖它?

时间:2016-05-14 22:44:37

标签: sql database

非常简单:

如果我在数据库中创建一个表,它会删除或覆盖另一个同名的表吗?

我在游戏中有一个需要信息表的脚本。 我可以在每次脚本启动时运行它吗?:

CREATE TABLE player_data ( UniqueID string, Money int )

因此,当其他人在他们的游戏上运行脚本时,将创建该表,但是如果他们再次运行它,它将不会被覆盖?

2 个答案:

答案 0 :(得分:3)

  

但如果他们再次运行它,它不会被覆盖?

没有。通常,在CREATE成功之前,您必须首先删除表。

当涉及到实际实现时,例如表是临时的还是永久的,访问权限,其中多个用户可以具有相同的表名,只要它们都使用不同的用户名,就会有很多例外。查看您的特定服务器版本是否存在此类异常。

答案 1 :(得分:2)

这取决于您使用的是哪个数据库引擎。在MySQL中有dist使它只会尝试创建表,如果它还不存在。

所以你的陈述看起来像CREATE TABLE IF NOT EXISTS。如果没有名为player_data的表,则会创建一个新表。但是,如果已经存在名为player_data的表,则不会对数据库进行任何修改。

大多数流行的数据库引擎通常都有替代方法来做类似的事情。