我手动开发了我的数据库,现在我的应用程序在我的开发PC上运行。
当它部署在新机器上时,我希望它创建d / b结构(如果它尚不存在)。
所以,我使用SHOW CREATE TABLE ...
并将输出复制到我的应用程序启动时执行的一些MySQl命令CREATE TABLE IF NOT EXISTS ...
中,每个表都有一个命令。
但是,虽然数据表在新PC上应该是空的 - 但是有一个配置表(带有一行),如果不存在,我想填充到默认值。
最简单(最优雅?)的方法是什么?从表中SELECT *
并检查zer0的行计数,必要时插入默认值?
是否有更简单(或“更好”)的东西?什么是标准做法?
由于
答案 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,插入数据!什么都没有简化。