1

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

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

4

2 回答 2

2

用普通的 SQL 是不可能的。存储过程应该工作得最好:读取 information_schema 并检查该列是否存在。如果不是 - 执行 alter 语句。

于 2013-04-25T17:00:28.187 回答
1

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

ALTER TABLE table_name ADD column_name VARCHAR(40);

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

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

于 2013-04-25T17:07:38.217 回答