在继承的DB中,我们发现大约有25个表具有定义为tinyint的主键。
对于其中一些人来说,这是一个迫在眉睫的问题,因为这种乐观的优化与我们(在某些情况下,很快)需要这些表比tinyint所允许的更多行的事实相冲突。
对于其他表来说,问题就在不久的将来,因为我们已经决定将提供程序和DB引擎切换到一个几乎兼容的关系数据库管理系统,但是缺乏tinyint支持.
每个表都有指向它们的2-6个外键关系,因此我们不仅必须更改这些列,而且还要更改FK列。
是否可以以某种方式编写这种更改的脚本,更改所有列,其中name = id和type = tinyint (例如,smallint或甚至int),同时修改所有表,同时引用FK引用这些列,以便它们也匹配?
我见过这将所有列从一种类型更改为另一种类型;但我尚未处理外键情况。
发布于 2019-05-12 23:59:18
这样做可能会奏效:
information_schem.columns中使用合适的ALTER TABLE语句,构造D8语句。https://dba.stackexchange.com/questions/237974
复制相似问题