场景很简单。
我有一个包含两个表的大型MySQL数据库:
-- Table 1
id (primary key) | some other columns without constraints
-----------------+--------------------------------------
1 | foo
2 | bar
3 | foobar
... | ...
-- Table 2
id_src | id_trg | some other columns without constraints
-------+--------+---------------------------------------
1 | 2 | ...
1 | 3 | ...
2 | 1 | ...
2 | 3 | ...
2 | 5 | ...
...
Run Code Online (Sandbox Code Playgroud)
id一个主键。该表包含大约1200万个条目。id_src和id_trg上都是主键,并且都在table1上具有外键约束,id并且还DELETE ON CASCADE启用了该选项。该表包含大约1.1亿个条目。 …如何使用Alembic或SQLAlchemy将另一列之后的列添加到数据库?这相当于这个SQL子句:
ALTER TABLE foo
CHANGE COLUMN bar
bar COLUMN_DEFINITION_HERE
AFTER OTHER_COLUMN;
-- or
ALTER TABLE foo ADD COLUMN baz AFTER bar;
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个邮件列表线程中的建议,但它没有帮助.
虽然查询时顺序无关紧要,但在SQL shell中有助于大表的可读性.