我知道这句话:
create table xyz_new as select * from xyz;
它复制了结构和数据,但如果我只想要结构呢?
我知道这句话:
create table xyz_new as select * from xyz;
它复制了结构和数据,但如果我只想要结构呢?
当前回答
通过其他方式,您可以从下面列出的命令获取表创建的ddl,并执行创建。
SELECT DBMS_METADATA.GET_DDL('TYPE','OBJECT_NAME','DATA_BASE_USER') TEXT FROM DUAL
类型是表,程序等。
使用这个命令,您可以从数据库对象中获得大部分ddl。
其他回答
使用sql developer选择表并单击DDL选项卡
在sql工作表中运行该代码时,可以使用该代码创建没有数据的新表
Sqldeveloper是oracle提供的一个免费应用程序。
如果表有序列或触发器,ddl有时也会为您生成这些。你只需要注意它们的顺序,知道什么时候打开或关闭触发器。
Create table target_table
As
Select *
from source_table
where 1=2;
Source_table是你要复制其结构的表。
使用pl/sql开发器,你可以在sql工作区或对象资源管理器中右键单击table_name,然后单击“查看”,然后单击“查看sql”,它会生成sql脚本来创建包含所有约束、索引、分区等的表。
接下来使用new_table_name运行脚本
以上任务可以通过两个简单步骤完成。
步骤1:
CREATE table new_table_name AS(Select * from old_table_name);
上面的查询创建了一个表的副本(包括内容)。
若要获得结构,使用删除表的内容。
步骤2:
DELETE * FROM new_table_name.
希望这能解决你的问题。感谢之前的帖子。给了我很多启发。
通过其他方式,您可以从下面列出的命令获取表创建的ddl,并执行创建。
SELECT DBMS_METADATA.GET_DDL('TYPE','OBJECT_NAME','DATA_BASE_USER') TEXT FROM DUAL
类型是表,程序等。
使用这个命令,您可以从数据库对象中获得大部分ddl。