有条件地将一列添加到mysql表中

时间:2013-04-25 16:54:47

标签: mysql database-design alter-table

我有一个项目,我希望能够在几个人的localhosts上管理同一数据库的多个实例。我希望每个开发人员能够将他们的数据库重置回规范来源,无论他们将数据库放入什么状态。为此,我维护一个标准的数据库文件。它使用CREATE TABLE table_name IF NOT EXISTS {

保存架构

但是,我希望能够在项目移动时根据需要添加到起始表结构中。要做到这一点,我希望能够做以下ALTER TABLE table_name ADD COLUMN IF NOT EXISTS column_name之类的事情但似乎并不存在。我确实注意到在互联网上浮动的存储过程解决了这个问题,但我想知道更简单的东西是否能够达到我想到的目标。感谢您的时间和帮助。

2 个答案:

答案 0 :(得分:2)

使用纯SQL无法做到这一点。存储过程应该是最好的:读取information_schema并检查列是否存在。如果不是 - 执行alter语句。

答案 1 :(得分:0)

一种选择是执行ALTER语句而不检查任何内容:

ALTER TABLE table_name ADD column_name VARCHAR(40);

(将VARCHAR(40)更改为您需要的任何内容)

如果该列尚不存在,则该语句将创建该列 如果该列已存在,则该语句不执行任何操作并返回错误。只需忽略错误并继续。