|
|
1
1
为了直接回答你的问题,你可以创建一个临时的程序来检测字段的存在,比如使用这样的查询:
然而,在现实世界中,数据库更改通常会被转换成三个脚本。一个创建脚本和两个delta一个向上一个向下。然后对数据库进行版本控制,以便您知道数据库在任何给定时间处于什么状态。 |
|
2
2
例如,对于所描述的场景,首先创建一个脚本来创建表,例如。
当你想改变或添加一些东西时,你只需编写另一个脚本,例如,
通常,您可以告诉架构管理器通过所有现有的迁移文件。每次运行时,模式管理器都会更新数据库中的变更日志表,因此当您运行它时,它会知道应该应用哪个脚本。 好的是,您可以将这些迁移添加到常规VCS中,这样您就可以始终知道在应用程序的哪个版本上使用了哪个数据库模式。你会有一个合适的变更日志给他们。 |
|
|
3
0
但是,你应该登记 replication |
|
4
0
遵循以下步骤(可以在PHP中轻松实现,我假设表的名称是Foo) 1.)运行以下代码:
2.)根据第一步的结果,您可以使用create table命令(您应该这样做) 3)将您的数据从现有表中存储,这些表将被替换为变量(可选的,如果您可以使用旧表中的数据,则只需要此数据)
5)从新的Foo表中获取行 6.)合并步骤4中得到的结果。)和5.)(可选,仅当可能使用旧表中的数据时才需要此选项)
8.)生成一个replace-into命令,将所有行插入到新创建的Foo表中(您可以阅读更多关于此的信息 here 在这些步骤之后,您将得到新版本的表。如果表太大,可以执行“如果不存在,则创建表”命令,如果创建不成功,请运行alter命令。
编辑: here ) 可以使用以下函数运行查询:mysql query(文档 here )
您可以使用新资源建立一个insert命令,以便在重新创建删除后插入所有重要数据(关于资源,请阅读更多信息 here here 但是,我建议您应该使用替换来代替插入,它像插入一样工作,除了它已经替换了行,如果它已经存在,它比插入更好。 在这里 )
|