标签: rename

如何安全地重命名 PostgreSQL 中的序列,最好在不停机的情况下?

由于某些原因,我们想要重命名生产数据库中的某些序列。

有没有一种方法可以在生产中安全地执行此操作,而不必先关闭与数据库的所有连接?

如果我们在 ID 序列中出现间隙(例如,它从 ID 123 跳到 ID 200 或其他),那很好,但我们显然不希望长锁导致延迟/错误,也不希望有任何重复 ID 和类似的风险。

我们在 Heroku 上使用 PostgreSQL 9.5.21。

我们已经查看了文档,但仍然不确定运行的后果

ALTER SEQUENCE old_id_seq RENAME TO new_id_seq;
ALTER TABLE mytable ALTER COLUMN id SET DEFAULT nextval('new_id_seq');
Run Code Online (Sandbox Code Playgroud)

在生产中。我想一个风险是如果mytable这两个命令之间发生了事情。但如果我们这样做怎么办:

-- Starting at a much higher value than the currently highest ID.
CREATE SEQUENCE new_id_seq START 200;

ALTER TABLE mytable ALTER COLUMN id SET DEFAULT nextval('new_id_seq');

DROP SEQUENCE old_id_seq;
Run Code Online (Sandbox Code Playgroud)

这样做有什么风险?

postgresql sequence postgresql-9.5 rename

5
推荐指数
1
解决办法
2614
查看次数

无缝 SQLServer 数据库名称更改

我需要更改一些数据库的名称,但是这些数据库被多个不同团队管理的许多应用程序使用。所有应用程序完成更改连接和数据库名称引用需要一些时间。有没有办法让更改无缝完成?正在查看同义词以暂时允许引用重命名的数据库,但不幸的是它仅适用于数据库级别。

sql-server sql-server-2014 rename

2
推荐指数
1
解决办法
140
查看次数

如何告诉 Microsoft SQL Server Management Studio 数据库重命名必须完全完成

我有一个旧的数据库副本。我通过备份从客户系统中检索它并将其恢复到我的本地 PC 上。我想查看同一数据库的最新副本。显然我不能这样做,在同一个数据库上工作,因为我的旧副本将被覆盖,所以我首先将我的数据库从“Firm_Customer”重命名为“Firm_Customer_orig”。

现在我想恢复数据库的最新副本,但失败了,如以下错误消息中所述:

System.Data.SqlClient.SqlError:无法覆盖文件“C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS01\MSSQL\DATA\Firm_Customer.mdf”。它正在由数据库“Firm_Customer_orig”使用。(Microsoft.SqlServer.SmoExtended)

我期望数据库从“Firm_Customer”重命名为“Firm_Customer_orig”也会导致文件“C:\Program Files\Microsoft SQL Server...\Firm_Customer.mdf”的重命名,但显然数据库重命名只是“部分” ”。

有没有办法强制数据库重命名以执行完整重命名(与“Firm_Customer”相关的所有内容都必须重命名为“Firm_Customer_orig”)?

哦,在我忘记之前:我正在使用 Microsoft SQL Server Management Studio,版本“v18.12”。

提前致谢

sql-server ssms restore rename

0
推荐指数
2
解决办法
557
查看次数