如果表不存在,如何创建*并填充*表?

时间:2012-11-29 06:39:22

标签: mysql sql

我手动开发了我的数据库,现在我的应用程序在我的开发PC上运行。

当它部署在新机器上时,我希望它创建d / b结构(如果它尚不存在)。

所以,我使用SHOW CREATE TABLE ...并将输出复制到我的应用程序启动时执行的一些MySQl命令CREATE TABLE IF NOT EXISTS ...中,每个表都有一个命令。

但是,虽然数据表在新PC上应该是空的 - 但是有一个配置表(带有一行),如果不存在,我想填充到默认值。

最简单(最优雅?)的方法是什么?从表中SELECT *并检查zer0的行计数,必要时插入默认值?

是否有更简单(或“更好”)的东西?什么是标准做法?

由于

3 个答案:

答案 0 :(得分:1)

我认为你想要的是CREATE TABLE IF NOT NOT EXISTS mytable AS SELECT * from originaltable;

答案 1 :(得分:1)

您可以像往常一样使用CREATE TABLE IF NOT EXISTS config ...,然后在您的应用程序中阅读您的配置表。如果该表没有读取任何数据,INSERT行将显示默认值并且您已完成。

此外,您可以让该配置表中有一行具有唯一键,如果已经存在行,则使用INSERT IGNORE跳过插入默认行。

答案 2 :(得分:1)

我认为没有比你已经建议的更优雅的方法:如果num_rows == 0,插入数据!什么都没有简化。