- Oracle數據庫編程經典300例
- 肖俊宇編著
- 586字
- 2018-12-30 10:29:47
實例021 復制相同結構的表
【實例描述】
當實際應用中需要使用兩個相同結構的數據表時,可以直接通過表結構復制功能實現。MS SQL Server、Access等數據庫提供了圖形化的操作界面來實現,而Oracle PL/SQL提供了一條簡單語句來完成。
本實例參照圖2-7中的STU表,通過CREATE TABLE命令復制一個與STU表結構相同的基本表STU1,操作完成后在SQL*Plus中可以看到STU和STU1兩個表的結構,如圖2-11所示。

圖2-11 復制相同結構的表
【實現過程】
(1)確認STU1表是否存在,如果創建一個與已存在表相同名稱的表將出現錯誤。通過DESC STU1命令查看STU1表。
SQL> DESC STU1 ERROR: ORA-04043: 對象STU1 不存在
(2)如果在Oracle SQL*Plus中使用以上命令后出現ERROR錯誤,并提示該表不存在后即可在其中輸入如下代碼復制表結構。
SQL> CREATE TABLE STU1 2 AS 3 SELECT * FROM STU WHERE 1=2 4 /
(3)SQL語句執行完成后再使用DESC STU1命令查看STU1表的結構,觀察其字段是否與STU表一致。
【范例解析】
本實例使用CREATE TABLE命令創建基本表,與實例016不同的是沒有定義基本表的字段、數據類型和約束等參數,而是以另一個已經存在的表作為藍本進行創建。在Oracle PL/SQL中,復制相同結構的表使用如下語句:
CREATE TABLE table_new AS SELECT * FROM table_old WHERE 1=2
其中,AS是復制表結構的關鍵字,SELECT子句是從已存在的表中獲取所有字段,WHERE子句表示只復制表結構,不復制表數據,關于表數據的復制,在后面的實例中還將會具體講解到。
注意:上述語句中的WHERE子句只是用于限制表數據的復制,其并不是唯一的寫法,讀者也可以將該實例改寫如下,其執行效果是相同的。
SQL> CREATE TABLE STU1 2 AS 3 SELECT * FROM STU WHERE ROWNUM<1 4 /
推薦閱讀
- Implementing VMware Horizon 7(Second Edition)
- Design Principles for Process:driven Architectures Using Oracle BPM and SOA Suite 12c
- Android和PHP開發最佳實踐(第2版)
- Mastering Objectoriented Python
- Swift 3 New Features
- PHP+MySQL+Dreamweaver動態網站開發實例教程
- FFmpeg入門詳解:音視頻原理及應用
- Building Minecraft Server Modifications
- Go并發編程實戰
- Mastering Git
- 從零開始學C#
- Web Developer's Reference Guide
- 監控的藝術:云原生時代的監控框架
- Oracle Data Guard 11gR2 Administration Beginner's Guide
- Scrapy網絡爬蟲實戰