我想在Oracle數據庫中創建一個與其他表(可稱爲table_original)相同列的表(可以說是table_copy),因此查詢將如下所示:create table table_copy as(select * from table_original where 1 = 0),這將創建一個表,但table_original的約束不會複製到table_copy,所以在這種情況下應該做什麼?如何在Oracle的結構和約束條件中創建與其他表相同的表?
1
A
回答
3
只有NOT NULL
使用Create Table As Syntax(CTAS)複製約束。其他應該手動創建。
然而,您可能會查詢數據字典視圖以查看約束的定義並使用PL/SQL在新表上實現它們。
另一個可能有用的工具是Oracle Data Pump。您可以使用REMAP_TABLE
選項指定新表的名稱來導入表。
2
使用數據庫工具提取約束所需的DDL(SQL Developer完成這項工作)。編輯生成的腳本以匹配新類的名稱。
執行腳本。
如果你需要做這個程序,你可以用這樣的語句:
DBMS_METADATA.GET_DDL('TABLE','PERSON') from DUAL;
相關問題
- 1. 在mysql中創建表約束條件
- 2. 如何在父表上創建約束子表的約束?
- 3. (Oracle)在創建表後添加約束
- 4. Oracle索引的定義與約束條件相同
- 5. 如何在多個表中創建條件唯一約束?
- 6. 在Oracle中,如何創建與現有表具有完全相同結構的外部表?
- 7. 約束,引用其他表
- 8. 查詢其他表的SQL Server檢查約束條件
- 9. 如何在SQLite中構建唯一的約束條件
- 10. 從oracle中的現有表創建表(結構和數據)
- 11. 如何使用GLPK在TSP中創建新的約束條件
- 12. 如何創建具有相同結構的工作表?
- 13. 如何從表條件的其他表
- 14. 使用其他唯一約束創建代理鍵表
- 15. oracle db中的條件唯一約束
- 16. Oracle中的完整性約束條件
- 17. 在Oracle SQL中創建默認約束
- 18. 從不同的結果集和不同的條件創建表
- 19. 對同一表格中的其他行執行強制約束
- 20. Oracle找到約束條件
- 21. 在oracle中找不到約束條件
- 22. 在Oracle中檢查約束條件
- 23. 在Oracle SQL中檢查約束條件
- 24. 如何從其他表中插入外鍵約束的值?
- 25. 瞭解SQL中的表約束條件
- 26. Postgres中的表寬約束條件
- 27. 無法在MySQL表中創建約束
- 28. SQL在約束條件下創建表語法錯誤
- 29. 在創建表格時檢查約束條件返回錯誤
- 30. 在mysql表上創建複製約束條件
這是CREATE TABLE AS選擇實際。 –