![]() |
1
3
仅限Oracle的注释:
|
![]() |
2
1
如果您使用的是SQL Server,那么DDL语句是事务性的,所以将其包装在事务中(不过我认为这不适用于Oracle)。
我们将升级分成单独的补丁,这些补丁与特定的功能相匹配。应用了哪些补丁
如你所说,在开始之前做个备份是很重要的。 |
![]() |
3
1
在过去,我必须做这样的改变,并且总是对数据丢失非常偏执。为了帮助降低这种风险,我总是对“沙盒”数据库进行大量的测试,这些数据库在模式和数据中尽可能紧密地反映了目标数据库。在推出流程之前,尽可能多地测试它,就像在应用程序的任何其他领域一样。 |
![]() |
4
0
如果您显著地更改列的任何数据类型,例如将varchar更改为int,DBMS将死机,您可能会丢失该数据。幸运的是,现在DBMS足够智能,可以在不丢失数据的情况下进行一些数据类型转换,但是您不希望在进行更改时冒损坏任何数据类型的风险。 您不应该通过重命名列来释放任何数据,也绝对不应该通过添加新列来释放任何数据,这是您移动数据时必须考虑的问题。 首先,备份整个表,包括模式和数据,这样,一秒钟后您就可以回滚到以前的模式。第二,看看你想做的改变,看看它们有多剧烈——试着弄清楚到底需要改变什么。如果要进行数据类型转换,请首先将该数据推送到一个中间表中,其中包含3列、外键(ID或其他可以定位行的内容)、旧数据和新列。然后直接将旧数据推送到新列,或者在应用程序级别转换它。 当所有类型都正确并且一切都成功时,运行alter语句并重新填充数据库!做起来很简单,只需要一个逻辑思维过程。 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 6 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 7 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 7 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 7 月前 |