Postgresql 将postgres表主键UUID更改为字符变量
我想将我的PostgreSQL表主键UUID转换为字符Postgresql 将postgres表主键UUID更改为字符变量,postgresql,Postgresql,我想将我的PostgreSQL表主键UUID转换为字符 ALTER TABLE payment_authorization ALTER COLUMN id TYPE VARCHAR; 当我运行上面显示以下错误的命令时,Beacause外键约束失败。在我的系统中有200个表。有什么简单的方法可以更改所有表的主键吗?更改所有表可能会很慢且麻烦 最简单的解决方案可能是: 使用导出数据库 pg_dump-F p-F dumpfile.sql dbname 使用编辑器将转储中的uuid替换为text
ALTER TABLE payment_authorization ALTER COLUMN id TYPE VARCHAR;
当我运行上面显示以下错误的命令时,Beacause外键约束失败。在我的系统中有200个表。有什么简单的方法可以更改所有表的主键吗?更改所有表可能会很慢且麻烦 最简单的解决方案可能是:
- 使用导出数据库
pg_dump-F p-F dumpfile.sql dbname
- 使用编辑器将转储中的
替换为uuid
:text
sed--in-place-e's/uuid/text/g'dumpfile.sql
- 删除并重新创建数据库:
DROP DATABASE dbname; CREATE DATABASE dbname;
- 导入转储文件:
psql -U postgres -d dbname -1 -f dumpfile.sql
更改表更容易。。。放弃约束
。你能给我举个例子吗。我几乎不能给你举个例子。。。我的意思是pg_dump-Fp
在数据库中,在CREATE TABLE
语句中,使用您最喜欢的文本编辑器将uuid
替换为character variabling
,删除数据库
,然后加载编辑的转储。您需要迁移所有uuid主键(+外键)还是只迁移一个(+外键)?我想迁移所有uuid主键和外键