我知道这句话:
create table xyz_new as select * from xyz;
它复制了结构和数据,但如果我只想要结构呢?
我知道这句话:
create table xyz_new as select * from xyz;
它复制了结构和数据,但如果我只想要结构呢?
当前回答
使用sql developer选择表并单击DDL选项卡
在sql工作表中运行该代码时,可以使用该代码创建没有数据的新表
Sqldeveloper是oracle提供的一个免费应用程序。
如果表有序列或触发器,ddl有时也会为您生成这些。你只需要注意它们的顺序,知道什么时候打开或关闭触发器。
其他回答
你也可以做
create table abc_new as select * from abc;
然后截断表abc_new。希望这能满足你的要求。
使用pl/sql开发器,你可以在sql工作区或对象资源管理器中右键单击table_name,然后单击“查看”,然后单击“查看sql”,它会生成sql脚本来创建包含所有约束、索引、分区等的表。
接下来使用new_table_name运行脚本
你可以这样做 创建表New_table为select * from Old_table 但是要小心 您创建的表不像old_table那样具有任何Index、PK等。
通过其他方式,您可以从下面列出的命令获取表创建的ddl,并执行创建。
SELECT DBMS_METADATA.GET_DDL('TYPE','OBJECT_NAME','DATA_BASE_USER') TEXT FROM DUAL
类型是表,程序等。
使用这个命令,您可以从数据库对象中获得大部分ddl。
create table xyz_new as select * from xyz where rownum = -1;
避免反复迭代,并在1=2的条件下不插入任何内容