如何更改已在数据库中注册的数据类型
how change data type already registered in the database
我现在正在开发一个将 table 的 PK(主键)定义为 int
的系统,这个 PK 有一个规则序列:
"YearYearMonthMonth" + 6 numbers
.
例如:2105000001
但是“22”(2022)的年份没有被预测,或者,如果我将这个序列的模式调整到当前年份,它会报错,因为它超过了最大值。一个整数。
疑惑:系统庞大,在java,PostgreSQL数据库,切换到Long有什么利弊?它会带来类似的数据库性能影响吗?所有已经存入银行的ID int
会自动变成Long吗?抱歉,但我不知道解决此问题的最安全方法..谢谢
您可以使用 ALTER TABLE:
更改数据类型而不丢失任何值
alter table the_table
alter the_column type bigint;
请注意,这将锁定 table,其内容将为 re-rewritten。因此,您必须停止任何访问该 table.
的应用程序
您还需要更改 引用 table.
的所有列的类型
我现在正在开发一个将 table 的 PK(主键)定义为 int
的系统,这个 PK 有一个规则序列:
"YearYearMonthMonth" + 6 numbers
.
例如:2105000001
但是“22”(2022)的年份没有被预测,或者,如果我将这个序列的模式调整到当前年份,它会报错,因为它超过了最大值。一个整数。
疑惑:系统庞大,在java,PostgreSQL数据库,切换到Long有什么利弊?它会带来类似的数据库性能影响吗?所有已经存入银行的ID int
会自动变成Long吗?抱歉,但我不知道解决此问题的最安全方法..谢谢
您可以使用 ALTER TABLE:
更改数据类型而不丢失任何值 alter table the_table
alter the_column type bigint;
请注意,这将锁定 table,其内容将为 re-rewritten。因此,您必须停止任何访问该 table.
的应用程序您还需要更改 引用 table.
的所有列的类型