在 Redshift 中创建后如何更改表架构?

2024-03-18

Postgresql 支持此操作,如下所示:

ALTER TABLE name
    SET SCHEMA new_schema

该操作在 Redshift 中不起作用。有什么办法可以做到这一点吗?

我尝试更新 pg_class 来为表设置 relnamespace(schema id),这需要超级用户帐户,并且 pg_shadow 表中的 usecatupd 为 true。但我收到了权限被拒绝的错误。唯一可以修改 pg 系统表的帐户是 rdsdb。

server=# select * from pg_user;
  usename   | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil |            useconfig             
------------+----------+-------------+----------+-----------+----------+----------+----------------------------------
 rdsdb      |        1 | t           | t        | t         | ******** |          | 
 myuser     |      100 | t           | t        | f         | ******** |          | 

那么红移真的不允许这样做吗?


最快的方法来做到这一点now如下:

CREATE TABLE my_new_schema.my_table (LIKE my_old_schema.my_table);
ALTER TABLE my_new_schema.my_table APPEND FROM my_old_schema.my_table;
DROP TABLE my_old_schema.my_table;

数据为my_old_schema.my_table只是重新映射为属于my_new_schema.my_table在这种情况下。比做一个要快得多INSERT INTO.

重要的提示:“数据成功追加到目标表后,源表为空”(来自关于 ALTER TABLE APPEND 的 AWS 文档 https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE_APPEND.html),所以要小心run the ALTER只声明一次!

请注意,您may必须删除并重新创建任何依赖于的视图my_old_schema.my_table. 更新:如果您经常这样做,您应该使用以下命令创建视图WITH NO SCHEMA BINDING并且它们将继续指向正确的表,而无需重新创建。

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

在 Redshift 中创建后如何更改表架构? 的相关文章

  • 从 Lambda 访问 Redshift - 避免 0.0.0.0/0 安全组

    我正在尝试从 Lambda 函数访问 Redshift 数据库 当我将 0 0 0 0 0 添加到 Redshift 界面中的安全组连接时 如建议的那样 本文 我能够成功连接 然而 从安全角度来看 我觉得使用 0 0 0 0 0 不太舒服
  • Redshift内部“身份”功能的签名

    在处理旧版 Redshift 数据库时 我发现自动增量列的默认标识值有不熟悉的模式 例如 create table sometable row id bigint default identity 24078855 0 1 1 text 令
  • Amazon Redshift 中的递归 CTE

    我们正在尝试移植代码以在 Amazon Redshift 上运行 但 Refshift 不会运行递归 CTE 函数 有好心人知道如何移植这个吗 with tt as select t row number over partition by
  • Redshift - 将纪元字符串转换为时间戳

    我有一个包含 2 列 epoch start 和 epoch end 的表 我想找出这两个纪元的天数差异 我面临的问题是上面的列是字符变化 5000 类型 我运行的查询是 选择 datediff day 1459762341 1450762
  • redshift - 如何插入表生成的时间序列

    我正在尝试在 Redshift 中生成时间序列并插入表中 但没有成功 到目前为止我已经尝试过 insert into date dateid date SELECT to char datum YYYYMMDD int AS dateid
  • 在 redshift 中将 MM/DD/YYYY 转换为 YYYYMMDD

    我需要在亚马逊 Redshift 数据库中将 MM DD YYYY 转换为 YYYYMMDD 这个查询的结果给了我一些奇怪的结果 有人可以帮帮我吗 选择to date 07 17 2017 YYYYMMDD 0007 07 20 如果您只想
  • 通过滚动窗口分区计算不同客户的数量

    我的问题类似于redshift 通过窗口分区计算不同客户的数量 https stackoverflow com questions 47736584 redshift count distinct customers over window
  • Redshift:定义复合主键

    我有一个表 我想为其定义一个复合主键 其中包含 redshift 中的两列 我在创建表语法时遇到一些问题 这就是我想做的 Create table metrics id varchar 30 runtime timestamp catego
  • 在 Redshift 中匹配连续数字 REGEXP_REPLACE

    我正在尝试从 Redshift 中的字符串中删除连续的数字 From 16 16 16 3 3 4 16 16 我想要得到 16 3 4 16 以下构造对我不起作用 SELECT regexp replace 16 16 16 3 3 4
  • Redshift - 如何删除 NOT NULL 约束?

    由于Redshift不支持ALTER COLUMN 我想知道是否可以从 Redshift 中的列中删除 NOT NULL 约束 您无法更改该表 还有一种替代方法 您可以创建带有 NULL 约束的新列 将旧列中的值复制到此新列 然后删除旧列
  • 如何获取 Redshift 中的 UDF 列表?

    有没有一种简单的方法来获取 Redshift 中可用的所有 UDF 的列表 此外 我想查找具有参数类型的 UDF 并按名称搜索 UDF 您可以查询pg proc表以获取所有可用的 UDF 按名称过滤 您可以使用以下命令按名称进行过滤pron
  • 在 RedShift 中将值拆分为多行

    如何将字段 例如 CSV 字符串 拆分为多行的问题已经得到解答 将值拆分为多行 https stackoverflow com questions 13159526 split values over multiple rows 然而 这个
  • Redshift:在执行 PARTITIONED UNLOAD 到 S3 时可以指定路径后缀吗?

    在对 S3 进行分区卸载时 有什么方法可以为路径提供后缀吗 例如如果我想将多个查询的输出用于批处理作业 其中查询输出按日期分区 目前我在 S3 中的结构如下 s3 bucket path queryA key 1 parquet s3 bu
  • [XX000][500310] [Amazon](500310) 无效操作:解析的清单不是有效的 JSON 对象

    我正在一个包含多个具有不同架构的文件的文件夹上运行爬网程序 我希望为每个文件找到一个表 发生的情况是 在 Glue Catalog 中 我实际上可以看到每个文件的一个表 以及它自己的架构 但是当我尝试通过 Redshift Spectrum
  • 使用复制命令和清单文件将 parquet 格式文件加载到 Amazon Redshift 时出错

    我正在尝试使用清单文件加载镶木地板文件并出现以下错误 查询 124138由于内部错误而失败 文件 https s3 amazonaws com sbredshift east data 000002 0 https s3 amazonaws
  • 将列添加到现有红移表

    我有一个包含超过 30m 条记录的数据库 我需要向数据库添加两个新列 问题是我需要这些列不为空 并且没有默认值 我以为我只需添加这些没有 NOT NULL 约束的列 用数据填充它们 然后添加约束 但 Redshift 不支持这一点 我心里有
  • Redshift Serverless 上的关系 stl_load_errors 权限被拒绝

    我使用 Amazon Redshift Serverless 和查询编辑器 v2 但在用户权限方面遇到问题 在S3中导入数据 csv 时出现以下错误 ERROR Load into table x failed Check sys load
  • 非聚合查询内部的聚合情况

    我有一个相当大的查询 其最简单的形式如下所示 select r rep id u user id u signup date pi application date pi management date aum from table1 r
  • 在 Amazon Redshift COPY 命令中转义分隔符

    我正在将数据从 Amazon S3 提取到 Amazon Redshift 中的表中 该表包含多个列 其中某些列数据可能包含特殊字符 复制命令有一个选项称为Delimiter我们可以在将数据拉入表时指定分隔符 问题有2个方面 当我导出时 u
  • 有条件地删除 Redshift 中的临时表

    我们正在使用http aws amazon com redshift http aws amazon com redshift 我正在报告中创建 删除临时表 有时我们会遇到有人创建了临时表但无法删除它的情况 在其他数据库中 例如 Redsh

随机推荐

  • ProGuard:保持私有内部类

    如何在 ProGuard 中保留私有内部类 我已经在我的 proguard cfg 中使用 表示内部类 下面的代码 但它不起作用 keep public class com xxx droid activity LoginActivity
  • 编译器内部如何解决C++中的钻石问题?

    我们知道可以使用虚拟继承来解决钻石问题 例如 class Animal base class int weight public int getWeight return weight class Tiger public Animal c
  • Android:如何判断软键盘是否显示?

    困境如下 我正在显示一个屏幕 其中有 3 个输入字段和一个选项卡内有 2 个按钮 总共有 3 个选项卡 它们位于屏幕底部 这 2 个按钮设置在屏幕的左下角和右下角 选项卡的正上方 当我单击输入字段时 选项卡和按钮都会被推到键盘顶部 我只想向
  • UIButton setAttributedTitle:forState:未显示

    我试图在自定义 UIButton 上的标题上添加下划线 但按照发现的示例here https stackoverflow com a 15930032 329900 我无法让它显示在屏幕上 这是我尝试使用的代码 NSMutableAttri
  • 我应该使用哪个高级 API 来管理 iOS 上的 UDP 套接字? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在章节 使用套接字和流 https developer apple com library mac d
  • 警告错误 6002:表/视图没有定义主键

    此主题已多次出现 但没有答案让我选择如何在 EF 中避免此问题 我的警告 警告错误 6002 表 视图 ADContainersWithEnvironmentsView 没有定义主键 关键已经推断出来了 定义被创建为只读表 视图 基本上 我
  • 自动调整闪亮的图表大小

    如何在闪亮的情况下自动调整 rChart 绘图的大小 我想使绘图适合用户的屏幕 就像使用 renderPlot 对常规绘图所做的那样 这是一个最小的例子 Server R require rCharts shinyServer functi
  • 可移植类库反射

    我目前正在尝试将 Xamarin iOS 应用程序库转换为 PCL 配置文件 78 我有这段代码无法编译 public static void RegisterAllCommandHandlers IEnumerable
  • 加速 jQuery AutoComplete(不可避免的长列表)

    今天下午早些时候 我开始了加速 jQuery 自动完成的旅程 并认为开始可能是个好主意内存缓存一切 正如本文所建议的 加快自动完成速度 https stackoverflow com questions 5820741 jquery ui
  • 证明对于以下每个,g(n) 都是 O(g(n)) [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 2 sqrt log n is O n 4 3 n 4 3 is O n log n 3 n log n 3 is O n log n
  • Android 上具有多个模块的 Firebase 推送通知

    我目前正在尝试在我们的应用程序中实现推送通知 所以我们有三个模块 App 1 Logic App 2 我显然给了他们名字 应用程序 1 和 2 依赖于逻辑模块 该模块包含两个应用程序的所有逻辑 现在 我希望向登录应用程序 1 或应用程序 2
  • 如何保存动态创建的文本框及其值

    我正在开发一个需要保存动态创建的文本框的项目 我需要在第二次运行应用程序时显示文本框的数据 这是我的代码 public partial class Form1 Form public Form1 InitializeComponent st
  • JavaScript 提交期间未传递 URL 参数

    我正在尝试从 javascript 提交表单 表单已提交 但参数未传递 下面是我的代码
  • Mongocxx 无法使用 SSL 连接到 mongoDB

    我完成了以下教程 https medium com rajanmaharjan secure your mongodb connections ssl tls 92e2addb3c89 https medium com rajanmahar
  • 什么是更新每用户系统参数?

    在我的服务中 我需要在更改登录屏幕保护程序超时后发出 刷新 在做研究的同时 我不断地寻找参考资料 http social technet microsoft com Forums windows en US c5979d78 9732 41
  • 通过 Javascript 访问 Twitter

    我正在构建一个通过以下方式使用 twitter 的网络应用程序 1 用户可以使用 Twitter 登录 即用户对应用程序进行身份验证和授权 我得到以下内容 我存储到服务器的 oauth token secret OAUTH TOKEN SE
  • Android:使用java反射更改私有静态最终字段

    使用 Java 反射更改私有静态最终字段 https stackoverflow com questions 3301635 change private static final field using java reflection 我
  • 将 Web Workers 捆绑为 npm 包的组成部分,并具有单个文件 Webpack 输出

    我正在编写一个 npm 包 它是流行库 leafletjs 的插件 我正在使用 webpack 来捆绑包 我希望这个包能够根据命令生成和销毁一些网络工作者 Web Worker 代码是我的源文件的一部分 但我希望能够将我的包作为 npm 模
  • Python Pandas,仅在特定时间重新采样

    我的 pandas 版本是 0 18 我有一个如下所示的分钟数据 Time 2009 01 30 09 30 00 85 11 100 11 2009 01 30 09 39 00 84 93 100 05 2009 01 30 09 40
  • 在 Redshift 中创建后如何更改表架构?

    Postgresql 支持此操作 如下所示 ALTER TABLE name SET SCHEMA new schema 该操作在 Redshift 中不起作用 有什么办法可以做到这一点吗 我尝试更新 pg class 来为表设置 reln