当前位置: 首页 > 面试题库 >

使用子查询作为目标插入

郭彬郁
2023-03-14
问题内容
INSERT INTO (SELECT id,col1,col2,col3,col4 FROM table WHERE col1=1234) 
   VALUES(SEQ.NEXTVAL,2456,'qwew','12312','12312');

我认为,对于上述查询,我​​只能将行插入到tablecol1值为的位置1234。但是,我能够插入除1234for以外的值col1

问题:

为什么我们需要像上面这样的查询?使用它的现实生活场景是什么?


问题答案:

它基本上是一种允许更新视图的结构。对于多表方案,只能对基础表之一进行INSERT。视图和要插入的表之间必须存在一对一的关系。

您显示的查询是一个内联视图,扩展了相同的概念。

在这里阅读更多文档

http://docs.oracle.com/cd/E17952_01/refman-5.1-zh-CN/view-
updatability.html

现实生活-能够通过View做到这一点,提供了灵活性,便捷性。但是欢迎更多有价值的投入。



 类似资料:
  • 问题内容: 让我们假设我必须将一个包含许多fk的表插入到表中,只是为了在 错误的语句 下面进行解释: 因此,基本上要插入的值来自不同的子查询,是否有可能实现这种行为? 问题答案:

  • 关于子查询使用 利用子查询进行过滤 列出够物品RGAN01的所有客户。 检索包含物品RGAN01的所有订单编号。 检索具有前一步骤列出的订单编号所有客户ID。 检索前一步骤返回的所有客户ID的客户信息。 mysql> SELECT order_num -> FROM OrderItems -> WHERE prod_id = 'RGAN01'; +-----------+ | or

  • 问题内容: 我正在使用嵌套集模型在iPhone上的本地SQLite数据库中存储较大的数据层次结构。我从他们的网站上阅读了MySQL技术文章,了解如何执行此操作,但是他们建议的查询(以及我需要的查询)之一似乎不适用于SQLite,并且我不确定如何解决它。 SQLite报告不是列,我认为这是因为其子查询实现不完整。有人对如何解决此限制有任何想法吗? 查询的目的是获取给定父节点的所有直接子代。 问题答案

  • 问题内容: 可以说我有这样的第一张桌子 分支表 第二张桌子是这样的 余额表 我想查询余额表,其中每一行包含分支表的名称。例如分支表中的“ 123456ABC”,我想从余额表中获取“ ABC”行 我怎样才能做到这一点?到目前为止,我还没有尝试过这个查询 有什么建议吗? 问题答案: 你应该 转换 了的名称模式: 联接看起来更易读:

  • 问题内容: 此查询出了什么问题: 它在没有该子句的情况下起作用。我似乎忘记了我的SQL。 问题答案: MySQL INSERT语法不支持WHERE子句,因此您的查询将失败。假设您的列是唯一键或主键: 如果您要插入ID为1的新行,则应使用: 如果您尝试更改ID为1的现有行的weight / desiredWeight值,则应使用: 如果需要,还可以使用INSERT .. ON DUPLICATE K

  • 问题内容: 我正在重构Zend Framework 2 应用程序,以使用准则2.5 DBAL代替Zend_DB(ZF1)。我有以下Zend_Db查询: 这将导致以下MySQL查询: 我无法弄清楚如何使用教义2.5查询生成器加入子查询。在主查询中,我需要从子查询中选择列。 我在这里已经读到,该学说不支持加入子查询。如果仍然如此,是否可以使用主义DBAL的SQL查询构建器以其他方式编写此查询?原生SQ