对于所有外键,如何在 SQL 中将数据类型从 32 位整数升级到 64 位整数?

Posted

技术标签:

【中文标题】对于所有外键,如何在 SQL 中将数据类型从 32 位整数升级到 64 位整数?【英文标题】:How can you upgrade a datatype from a 32-bit Integer to a 64-bit Integer in SQL for all foreign keys? 【发布时间】:2009-01-12 22:12:10 【问题描述】:

对于基本上每个 SQL 数据库,您将如何升级您的数据类型并升级链接到该数据类型的所有外键?

例如,假设我有 ScientificResult 是一个 32 位整数。现在我希望 ScientifcResult 是一个 64 位整数。 ScientificResult 也是一些其他表的外键,但它们被声明为 32 位整数。

有没有通用的方法来做到这一点?

【问题讨论】:

是否有任何人知道的程序或脚本可以做到这一点? 【参考方案1】:

使用INFORMATION_SCHEMA.COLUMNS 和各种约束表生成脚本。

    删除所有外键 升级所有表 (ALTER TABLE ALTER COLUMN) 重新创建所有外键

如果表很大,第 2 步和第 3 步可能需要很长时间。

【讨论】:

【参考方案2】:

我会说通用方法是删除所有键,更改列数据类型,然后重新创建所有键。

【讨论】:

以上是关于对于所有外键,如何在 SQL 中将数据类型从 32 位整数升级到 64 位整数?的主要内容,如果未能解决你的问题,请参考以下文章

在 SQLite 中将 SQL 数据插入到链接(外键)表中

如何在 SQL Server 中查找外键依赖项?

如何在 SQL 中将值显示为 Y 或 N?

如何从 SQL Server 2014 中的 Select 查询中将数据分配给用户定义的表类型

如何在 Oracle SQL 中将整数除以产生浮点数?

SQL数据库的、外键和查询