我希望更新MySQL数据库模式(使用MySQL代码),但不幸的是,由于它们是分布式的,我不确定表的状态。
假设一些“客户端”有一个名为“user”的表,其模式如下:
我想添加一个名为“email”的列,但很有可能他们已经安装了此列(具体取决于他们的版本)。
如何运行一个命令来确保有一个“email”列,并且如果已经存在,则不执行任何操作?请注意,我需要对许多更复杂的表格执行此操作。
我知道我可以创建临时表并重新填充(如果这是唯一的解决方案,我会这样做),但我认为可能有一些“CREATE”或“UPDATE”表命令,具有“如果你已经有该列,请跳过”的逻辑。
假设一些“客户端”有一个名为“user”的表,其模式如下:
name VARCHAR(64) NOT NULL
password VARCHAR(64) NOT NULL
我想添加一个名为“email”的列,但很有可能他们已经安装了此列(具体取决于他们的版本)。
如何运行一个命令来确保有一个“email”列,并且如果已经存在,则不执行任何操作?请注意,我需要对许多更复杂的表格执行此操作。
我知道我可以创建临时表并重新填充(如果这是唯一的解决方案,我会这样做),但我认为可能有一些“CREATE”或“UPDATE”表命令,具有“如果你已经有该列,请跳过”的逻辑。
call AddColumnIfDoesntExists(Database(), 'user', 'email', 'varchar(100) null');
- user3846015