1

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

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

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

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

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

有没有更简单(或“更好”)的东西?什么是标准练习?

谢谢

4

3 回答 3

1

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

于 2012-11-29T06:41:07.057 回答
1

您可以CREATE TABLE IF NOT EXISTS config ...像往常一样简单地使用,然后在您的应用程序中读取您的配置表。如果该表未读取任何数据,则INSERT使用默认值行,您就完成了。

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

于 2012-11-29T06:43:17.743 回答
1

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

于 2012-11-29T07:00:57.323 回答