在SQL DB2中更改视图,添加新列
我通过按系列和值排序创建了一个视图orderedView,如下所示:在SQL DB2中更改视图,添加新列,sql,view,db2,alter,Sql,View,Db2,Alter,我通过按系列和值排序创建了一个视图orderedView,如下所示: series | values 1 | 1 1 | 3 1 | 5 1 | 6 2 | -1 2 | 0 2 | 4 2 | 5 现在,我想在我的视图中添加第三列,它从1到结尾枚举每一组序列,如 series | values | row_ID 1 | 1 | 1 1 |
series | values
1 | 1
1 | 3
1 | 5
1 | 6
2 | -1
2 | 0
2 | 4
2 | 5
现在,我想在我的视图中添加第三列,它从1到结尾枚举每一组序列,如
series | values | row_ID
1 | 1 | 1
1 | 3 | 2
1 | 5 | 3
1 | 6 | 4
2 | 3 | 1
2 | 6 | 2
2 | 8 | 3
2 | 9 | 4
我试过了
ALTER VIEW orderedView
ADD COLUMN ROW_ID INT NOT NULL;
但intelliJ表示,在ALTER VIEW orderedView ALTER、DISABLE或ENABLE预期后,得到了“ADD”
甚至可以通过添加新列来更改视图,还是必须在创建视图之前添加列?如果是这样,怎么做
提前感谢您的帮助。您必须删除并重新创建视图。视图是一个查询,您必须修改此查询…这里是第一个google结果:要更改视图定义(例如,要添加其他列),您必须删除视图并使用create view语句创建一个新视图。这对我没有帮助,因为我想通过表中以前不存在的列来扩展视图,该视图是从中检索到的。即使我删除视图并尝试ALTER view orderedView ADD COLUMN ROW_ID INT NOT NULL;我也有同样的错误。为什么要删除视图,而不是使用CREATE-ALTER命令进行重新创建?只需使用所有三列重新创建视图。你能粘贴create ddl和与之相关的错误吗?这就是我用ALTER VIEW orderedView ADD COLUMN ROW_ID INT NOT NULL尝试的方法;一开始,但没有起作用。添加以前不存在的新列的正确语法是什么?顺便说一句,在第二个修改过的表中有一个输入错误,其中series=2和row_id=1的值应该是-1,就像在第一个表中一样。好的,谢谢,如果有人能帮助我在添加和填充row_id的同时创建一个新视图,那就太好了。我现在有了这样一个功能:创建视图orderedView作为selectseries,VALUES,ROW_ID fromoriginableorderbyseries,VALUES;但是我的所有ROW_ID条目仍然为null。ROW_ID在您的originalTable中为null,请更新您的originalTableBe警告,由于无法更改DB2中现有视图的限制,在IBMi DB2上,从该视图派生的所有其他视图也将消失。一点也不友好。这在Microsoft SQL Server中很容易实现。