我有一张桌子
Name Age RollNo.
A 1 10
B 2 20现在我想永久地修改这个表,在修改它之后,应该如下所示
RollNo. Name Age
10 A 1
20 B 2我该如何改变这个表,我只想改变这个表的物理结构。
发布于 2013-01-11 19:23:38
为什么你想做这件事?
如果只是因为您希望在使用SELECT *时有一个正确的列顺序,那么从一开始就不应该使用*。在查询中始终使用精确的列列表。
如果是因为你认为它会提高性能,你做过实际的测量吗?我怀疑您会发现更改物理列顺序会对性能产生重大影响的场景很多。在某些情况下,可以使用链接行(请参阅this article中的“行链接”部分),但这不适用于像您这样的窄行。
话虽如此,您可以:
在NEW_TABLE.
DROP TABLE OLD_TABLE.
ALTER TABLE NEW_TABLE RENAME TO OLD_TABLE.上
CREATE TABLE NEW_TABLE AS SELECT <different column order> FROM OLD_TABLE.如果在接受更新时需要这样做,您可能还需要查看dbms_redefinition。
发布于 2013-01-10 14:42:16
您可以删除和创建表,而不会丢失oracle using语句中的数据。
create table YOUR_TABLE_BU as select * from YOUR_TABLE请通过link - How can I create a copy of an Oracle table without copying the data?了解更多详细信息。尝试:
CREATE TABLE YOUR_TABLE_BU AS SELECT * FROM YOUR_TABLE;
DROP TABLE YOUR_TABLE;
CREATE TABLE YOUR_TABLE AS SELECT RollNo., Name, Age FROM YOUR_TABLE_BU;
DROP TABLE YOUR_TABLE_BU;https://stackoverflow.com/questions/14251904
复制相似问题