在另一列之后添加列

Posted

技术标签:

【中文标题】在另一列之后添加列【英文标题】:Add column after another column 【发布时间】:2015-08-08 07:05:48 【问题描述】:

如何使用 Alembic 或 SQLAlchemy 将另一列添加到数据库中?这相当于this SQL clause:

ALTER TABLE foo
CHANGE COLUMN bar
bar COLUMN_DEFINITION_HERE
AFTER OTHER_COLUMN;
-- or
ALTER TABLE foo ADD COLUMN baz AFTER bar;

我也尝试了this mailing list thread 中的建议,但没有帮助。

虽然查询时顺序无关紧要,但在 SQL shell 中它有助于大型表的可读性。

【问题讨论】:

这里有答案:***.com/questions/17541312/… @mba12:那是关于 SQL 语法,而不是关于如何使用 SQLAlchemy 的工具来做到这一点。 【参考方案1】:

试试这个查询:

ALTER TABLE table_name ADD New_column_name column_definition AFTER column_name;

【讨论】:

【参考方案2】:

使用ALTERAFTER 来指定放置列的位置。

ALTER TABLE foo 
CHANGE COLUMN foo1 foo1 INT(10) UNSIGNED NULL DEFAULT NULL AFTER foo2;

【讨论】:

是的,这就是 OP 希望使用 SQLAlchemy 模式迁移管理工具(例如 Alembic 或 SQLAlchemy-Migrate)生成的语法。你的回答不包括那个。

以上是关于在另一列之后添加列的主要内容,如果未能解决你的问题,请参考以下文章

使用 docrine 模式在 symfony 中的另一列之后添加新列

Pandas DataFrame:使用列值在另一列中切片字符串

在另一列中使用一列中的值

EXCEL 比较一列数据是不是在另一列出现过

响应式两列布局:在另一列之间移动一列

在另一列SQL的连接信息中查找一列信息