如何制作带有 PK 的表格副本?
在 Oracle 10g 数据库中,我想复制现有表。我希望它具有与原始表相同的数据和行。虽然原始表使用 PK,所以我不确定如何复制它并保持它们的唯一性。
In an Oracle 10g database, I would like to make a copy of an existing table. I would like it to have the same data and rows as the original table. The original table uses a PK though, so I'm not sure how to copy it and keep them unique.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
oracle 将 pk 维护为列约束。您必须复制该表,然后为新表创建此约束。
以下代码说明了如何完成您的工作。
希望这有帮助,
最诚挚的问候,
卡斯滕
oracle maintains the pk as a column constraint. you have to copy the table and subsequently create this constraint for the new table.
the following code illustrates how to get your job done.
hope this helps,
best regards,
carsten
您可以使用进行复制,
您也可以使用dbms_metadata.get_ddl来获取表的关联约束
并通过所有检查创建它
You can make the copy using
Also you could use dbms_metadata.get_ddl to get the associated constraints of the table
and create it with all the checks
或者您可以在一条语句中完成所有操作:
我认为使用
create table as select
时指定列名称的格式有点繁琐,因为我不相信您可以指定数据类型(确实有点明显),但您可以指定诸如not null
、主键和外键之类的约束。Or you can just do it all in one statement:
I think the format of specifying column names when using
create table as select
is a bit fiddly in that I don't believe that you can specify data types (sort of obvious really) but you can specify constraints such asnot null
, primary key and foreign key.