gpt4 book ai didi

database - 如何在 SQL*Plus 中复制一个包含所有约束的表?

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:11 26 4
gpt4 key购买 nike

使用 create table tab2 as select * from tab1;,我可以复制数据但不能复制主键约束:

SQL> desc tab1;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER
NAME VARCHAR2(20)

SQL> select * from tab1;

ID NAME
---------- --------------------
1 A

SQL> create table tab2 as select * from tab1;

Table created.

SQL> desc tab2;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(20)

SQL> select * from tab2;

ID NAME
---------- --------------------
1 A

SQL>

如何复制包含所有约束的表格?

最佳答案

我会从类似的东西开始

set long 100000
select dbms_metadata.get_ddl('TABLE', 'TAB1', '<schemaname'>) from dual

这将为 TAB1(在模式 <schemaname> 中)返回一个 create table 语句。你可以然后复制该语句并将标识符 TAB1 更改为 TAB2。你应该确保您还更改了所有约束的名称,因为它们在 Oracle 中必须是唯一的。

最后,您需要执行 insert into TAB2 select * from TAB1

关于database - 如何在 SQL*Plus 中复制一个包含所有约束的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3725535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com