有没有办法在Oracle表的指定位置添加列? [复制]

2024-04-16

考虑一下我在 Oracle 10G 中创建的初始表:

╔═════════════════════════════════╗
║  CUSTOMER_ID ACC_NO ACC_BALANCE ║
╠═════════════════════════════════╣
║         100    200        1000  ║
║         101    150        4000  ║
║         102    350        2000  ║
║         103    450        2500  ║
║         104    550        2200  ║
╚═════════════════════════════════╝

现在我想添加另一列customer_name到表中。我用了:

ALTER TABLE BANK_ACCOUNT 
  ADD (CUSTOMER_NAME VARCHAR2(30)); 

并且该列被插入为表中的最后一列,而我希望该列作为第二列添加到表中。现在我提到的SQL代码无法做到这一点。那么如何在指定位置添加列呢?在 SQL 中是否可以实现?


确实没有matter该列的物理位置是select将允许您指定检索它们的顺序(逻辑上)。

而且,如果您正在使用select *它不允许您指定顺序,您可能不应该这样做。在极少数情况下您应该这样做(例如数据库分析工具),大多数时候最好选择您想要的各个列,即使您想要全部列。这使您可以快速捕获架构更改,以便您可以使您的程序适应它们。

无论如何,SQL 本身不保证返回列的顺序,除非您明确地列出它们。select *今天可能会按顺序,明天会按字母顺序给您。即使特定的实现允许您这样做(通过创建一个新表,其中列位于“正确”的位置并复制数据,或者提供 SQL 扩展,例如alter table T insert column C1 before C2),我建议不要这样做。它不能移植到其他实现,我更喜欢让我的代码尽可能可移植。

此外,除了您可以在 SQL 中指定的内容之外,DBMS 还应该能够完全控制how它存储数据。您的主键可能是第七列和第四十列的组合,将它们放在物理记录的前面可能会更有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法在Oracle表的指定位置添加列? [复制] 的相关文章

随机推荐

  • 当启用删除、插入或更新操作时,LinqDataSource 不支持 Select 属性

    我在单击删除按钮 链接时收到此错误GridView控制 LinqDataSource DataSource 不支持 Select 属性 删除 插入或更新操作已启用 我真的不明白为什么会收到此错误 因为我已经在网站的不同网页上做了同样的事情
  • 键盘中断张量流运行并在此时保存

    有没有办法通过键盘中断来中断张量流会话 并可以选择在此时保存模型 我目前让会话运行过夜 但需要停止它 以便我可以释放内存供电脑在白天使用 随着训练的进行 每个时期都会变慢 因此有时我可能需要等待几个小时才能进行程序中的下一个计划保存 我想要
  • 为 android 4.0 或更高版本创建自定义锁屏?

    我想为 android 4 0 及以上版本创建自定义锁屏 我尝试使用小部件来创建锁屏 但它仅支持 android 4 2 还有其他方法可以创建自定义 Android 锁屏吗 几个月前我在互联网上的某个地方找到了一些片段 我做了一些更改 最近
  • openlayers 地图未在 vuejs 中显示

    以下代码片段是一个 vue 文件 它不会生成任何错误 但 openlayers 地图不会显示 我尝试了 openlayers 的两个 vue 插件 但似乎没有按照我的需要工作 在 vue 之外 代码可以工作 我使用 npm install
  • Google Sheets 数据透视表未更新

    我有一个谷歌应用程序脚本 它将信息提交到有组织的工作表 并希望创建一个包含工作表中所有信息的数据透视表 我可以这样做 但每当我向工作表提交新行数据时 它都不会自动包含在数据透视表中 每次提交新行数据时 我都必须手动更改数据透视表的范围 有什
  • Android:检测打开的键盘,onApplyWindowListener 不起作用

    我试图在键盘打开时隐藏布局底部的一个特定按钮 以便为用户提供更多视图 随着发布androidx core core ktx 1 5 0 alpha02谷歌 最后 添加了一个名为的方法insets isVisible WindowInsets
  • 如何访问在 Amazon ec2 上运行的 django 应用程序?

    所以 我查看了堆栈溢出 其他网站 但无法解决这个问题 因此发布这个问题 我最近开始学习 django 并且现在尝试在 ec2 上运行它 我有一个以下格式的 ec2 实例 ec2 xx xxx xx xxx us west 2 compute
  • 如何使用 Fitch 系统证明 ((p ⇒ q) ⇒ p) ⇒ p

    仅供参考 我使用的逻辑程序无法进行矛盾引入 这一点很可能是无关紧要的 因为我非常怀疑我是否需要使用任何形式的矛盾来证明这一点 在尝试解决这个问题时 我首先假设 p q p 它是否正确 如果是这样 接下来怎么办 如果解决方案看起来如此明显 请
  • “GONE”视图是否会损害性能?

    我正在制作一个应用程序 它可以节省我一些时间 多个活动有一个布局 其中一些视图设置为 GONE 消失 具体取决于正在使用的活动 我知道布局中包含大量视图可能会导致性能不佳 如果我有一个具有大量视图的活动 但其中很大一部分视图都消失了 那么该
  • 在 uiimageview 中加载大图像时的内存消耗

    我正在使用 UIViewContentModeScaleAspectFit 将大小为 2480 3508 的 UIImage 加载到 UIImageView 中 我在加载此图像时收到内存警告 当我在此 UIImageView 中加载一些此尺
  • 如何从列类型列表中的 pandas DataFrame 中删除空值

    只是期待一个从具有列表值的列中删除空值的解决方案 从某种意义上说 我们已经事先替换了一些字符串 它是列表的字符串表示形式的列 In df color我们只是更换 Blue带空字符串 示例数据框 df pd DataFrame Bird pa
  • Visual Studio 2012 Ultimate 新依赖图错误

    每次使用 Visual Studio 2012 Ultimate 创建新的依赖关系图时 我都会收到此错误 Unable to connect to the specified database An exception occurred a
  • 在Python中插入lxml树时出现属性错误

    我正在尝试将 xml 的小结构注入到现有 xml 文件中的特定位置
  • href 链接不可点击或不可突出显示

    我不完全确定为什么我的 a href 链接不起作用 在某个时间点它起作用了 我对 Z Index 做了一些研究 但这似乎不是问题 也不是我有一个重叠的 div 吗 请访问JSFIDDLE NET https jsfiddle net t9v
  • Ajax 如果超过一个 @mention

    我正在尝试使用 jquery ajax php 制作一个 facebook 和 twitter 风格的提及系统 但如果我尝试 提及多个用户 我就会遇到问题 例如 如果我开始输入如下内容 Hi stack how are you 结果显示 s
  • 将列添加到现有红移表

    我有一个包含超过 30m 条记录的数据库 我需要向数据库添加两个新列 问题是我需要这些列不为空 并且没有默认值 我以为我只需添加这些没有 NOT NULL 约束的列 用数据填充它们 然后添加约束 但 Redshift 不支持这一点 我心里有
  • 如何使用代码在 ios 应用程序中录制屏幕视频?

    就像苹果商店中的 ShowMe 应用程序一样 用户可以绘画并将动作录制为视频 你们知道如何在代码中做到这一点吗 谢谢 我们最近遇到了这个问题 并发现了一篇精彩的文章 其中使用了视图层和媒体框架 在这里查看链接 http codethink
  • Swift 协议只能设置吗?

    为什么我可以毫无错误地执行此操作 var testDto ModelDto modelId 1 testDto objectId 2 当我定义这个时 protocol DataTransferObject var objectType Dt
  • 浮动操作按钮不显示矢量资源

    I m trying to setup a vector asset into a fab But the result is like this As you can see the vector is there but way dow
  • 有没有办法在Oracle表的指定位置添加列? [复制]

    这个问题在这里已经有答案了 考虑一下我在 Oracle 10G 中创建的初始表 CUSTOMER ID ACC NO ACC BALANCE 100 200 1000 101 150 4000 102 350 2000 103 450 25