问题标签 [updatable-views]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 可更新视图在 Visual Basic 中提供运行时错误
我正在尝试将使用旧数据库表的旧 Visual Basic 程序转换为更现代和更强大的实现。当它应该使用浮点数来给出一个具体的例子时,它使用了很多 varchars,这使得代码非常难以阅读,因为需要从浮点数到字符串和反向的大量转换,我想在新应用程序中避免这种情况)
为了保持向下兼容性,我在我的新表上创建了可更新的视图,以便 vb 中的旧应用程序仍然可以工作,或者至少这是意图。
我的观点如下:
然后我在此视图上创建而不是插入而不是更新触发器以使其可更新并手动测试这些触发器以验证它们是否正常,并且它们可以工作。
但是,当作为最终测试我尝试运行 VB6 程序时,它甚至在实际执行插入之前也无法执行任何插入。代码在 VB 本身的 OLE 内容中失败:
rsSelectedArtikel 后面的查询是一个简单的 select * from Orders_Catagen_artikels,它是我上面显示的视图的名称。
¨ 我得到的运行时错误是 -2147217887(8004e21) 通常会识别错误的类型使用或类似的东西。但是当我查找视图的列时,Aantal 被正确识别为 nvarchar(5)。
是否有针对此类问题的修复或解决方法?
我当然可以继续使用旧表定义,使用字符串来表示长度和宽度等,并为新应用程序创建一个可更新的视图,但这对我来说似乎与正确的做法相反。
或者我稍微修改一下 VB 应用程序,我有源代码,然后首先修改数据模型以使用浮点数来表示宽度、高度和长度,但我的偏好是保持不变。
我本来希望可更新的视图是这类问题的答案。
UPDATE 1:添加更新触发器和插入触发器
sql-server - 链接到 SQL Server 的访问视图不可更新,但它与 ADP 配合得很好
我正在将 ADP(访问数据项目)转换为 ACCDB。到目前为止,一切都很顺利,只是视图似乎不再是可更新的,因为它们是到 SQL Server 数据库的实际链接。
具体来说,以下 VBA 适用于表,但不适用于视图:
第 3 行抛出异常“PasteAppend 现在不可用”——这是绝对正确的(粘贴菜单显示为灰色)。但是,重申一下,对于使用相同 SQL Server 数据库的ADP视图,不会出现此问题。
不幸的是,Microsoft 已停止对 ADP 的支持,因此我们被迫迁移。
有什么建议可以解决这个问题吗?
mysql - 可更新的 mysql 视图保持空值
我们的 table1 有列(id、firstname、lastname、gender)。
然后 table2 与列(manid、bodyfat、task、matchid)
然后 table3 与列(womanid,bodyfat,womandate,wmatchid)
所以,在这里我想用table1的列(id,firstname,lastname,gender),table2的列(bodyfat,task)和table3的列(bodyfat,womandate)制作一个可更新的mysql视图。bodyfat 是通过 javascript 计算并使用 php 发送到数据库的,因此您可以理解,在视图的每一行中,我们将 table2 的列 (bodyfat, 命令) 设为 null,否则我们将 table3 的列设为 null (bodyfat , womandata) 如果我们分别谈论的是男人或女人。
因此,如果我使用LEFT JOIN语句来构建我的视图,我将正确显示空值,但该视图将不可更新。
如果否则我使用JOIN语句来构建我的视图,则会发生相反的事情,因此视图现在是可更新的,但它不能保留空值。
是否有另一个连接语句可以用来保持空值和可更新?
java - 当我使用可更新字段时,结果集不可更新
我正在运行这段代码,但我不知道这段代码有什么问题。
我使用字段 SENSITIVE & UPDATABLE 定义语句,但是当我运行代码时,控制台中会出现此错误消息:
结果集不可更新。此结果集必须来自使用 ResultSet.CONCUR_UPDATABLE 结果集类型创建的语句,查询必须仅选择一个表,并且必须选择该表中的所有主键。
有关更多详细信息,请参阅 JDBC 2.1 API 规范,第 5.6 节。
进程以退出代码 0 结束
请指导我。这是代码:
sql - Oracle 中看似关键的保留视图的更新引发 ORA-01779
问题
我正在尝试将性能低下的MERGE
语句重构为UPDATE
Oracle 12.1.0.2.0 中的语句。该MERGE
声明如下所示:
它主要是低性能的,因为对大型(100M 行)表有两次昂贵的访问t
架构
这些是所涉及的简化表:
t
account_no
正在迁移其列的目标表。u
包含account_no_old
→account_no_new
映射的迁移指令表v
contract_id
一个辅助表模拟和之间的一对一关系tenant_id
架构是:
我无法修改架构。我知道添加t.tenant_id
将通过阻止 JOIN 来解决问题v
替代 MERGE 不起作用:
ORA-38104: ON 子句中引用的列无法更新
请注意,无法避免自连接,因为这种替代的等效查询会导致 ORA-38104:
更新视图不起作用:
ORA-01779: 无法修改映射到非键保留表的列
直观地说,我会在这里应用传递闭包,这应该保证对于 in 中的每个更新行,in和 int
最多只能有 1 行。但显然,Oracle 不承认这一点,因此以下语句不起作用:u
v
UPDATE
以上提出ORA-01779
。添加未记录的提示/*+BYPASS_UJVC*/
似乎不再适用于 12c。
如何告诉 Oracle 该视图是密钥保留?
在我看来,视图仍然是保留键的,即对于 中的每一行t
,在 中恰好有一行v
,因此在 中最多只有一行u
。因此视图应该是可更新的。有没有办法重写这个查询,让 Oracle 相信我的判断?
或者是否有任何其他我忽略的语法阻止MERGE
语句的双重访问t
?
swift - 使用可重用的表视图进行 Segue
我正在开发一个目录列表应用程序。具体来说,我正在开发的应用程序称为 iEngineering。如果您下载或查看 AppStore 上的应用程序,最好将我的问题的目的带回家。它是免费提供的。我想使用一个带有表格视图的视图控制器来导航到带有表格视图的类似视图控制器。例如,选择“化学工程”转换/切换到带有新列表的新屏幕,该列表显示化学工程中的子类别。目前,我的项目需要两个带有表格视图的视图控制器来完成这个过程,但我想将它浓缩成一个带有表格视图的单个视图控制器。谢谢大家的时间和任何你可以提供给我的指导:)
sql - 无法更新sql表中的列
我创建了一个视图
我需要更新new_name
列,但我得到一个响应错误列'new_name'不可更新。有什么办法吗?
postgresql - 无法更新视图
我正在使用 PgAdmin 4 和 PostgreSQL 12。下面是一个简单的表定义词汇表和一个视图词汇输入。当我使用查询工具屏幕中的词汇输入中的 SELECT - 语句时,我可以更新和添加行。但是,当我从词汇输入中选择“查看/编辑数据——所有行”时,视图被锁定。这是为什么?
text - ipywidgets 可更新的文本区域滚动条
使用 ipywidgets,我需要创建一个显示警报消息的输出文本框。该框应包括一个滚动条,以便能够阅读以前的消息。ipywidgets 带有布局、文本区域和文本功能,但我不知道如何在我的特定情况下使用它们。
非常感谢您的帮助和建议
谢谢
postgresql - Postgres:带有检查选项的可更新视图(在哪里)
我尝试使用check option
.
当我在过滤条件中有连接时,我使用一个where in
子句来简化查询。但是,如果我同时使用and
声明视图,则数据验证似乎不可靠。我在文档中没有看到这个限制:https ://www.postgresql.org/docs/current/sql-createview.htmlcheck option
where in
它是一个错误吗?有解决方法吗?
编辑:我在这里创建了一个错误报告