很简单:
如果我在数据库中创建一个表,它会删除或覆盖另一个同名的表吗?
我在需要信息表的游戏中有一个脚本。我可以在每次脚本启动时简单地运行它吗?:
CREATE TABLE player_data ( UniqueID string, Money int )
Run Code Online (Sandbox Code Playgroud)
这样当其他人在他们的游戏上运行脚本时,表将被创建,但如果他们再次运行它,它不会被覆盖?
但是如果他们再次运行它,它不会被覆盖?
不。通常,您必须先删除表,然后 CREATE 才能成功。
当涉及到实际实现时,有很多例外,例如,如果表是临时的还是永久的,多个用户可以具有相同表名的访问权限,只要他们都使用不同的用户名。在您的特定服务器版本中查找此类异常。
这取决于您使用的数据库引擎。在 MySQL 中,CREATE TABLE IF NOT EXISTS如果它不存在,它只会尝试创建表。
所以你的声明看起来像CREATE TABLE IF NOT EXISTS player_data ( UniqueID string, Money int ). 如果没有名为 player_data 的表,则将创建一个新表。但是,如果已经有一个名为 player_data 的表,则不会对数据库进行任何修改。
大多数流行的数据库引擎通常有其他选择来做类似的事情。