创建 Table 并迁移数据
Create Table and Migrate Data
我是数据库编程的新手,有一个问题。
在运行的 C++ 应用程序中,有一个 Oracle 数据库。 table 之一叫做 USR_INFO。它有多个列,例如,
1. U_INFO_ID
2. U_INFO_FIRST_NAME
3. U_INFO_LAST_NAME
4. U_INFO_ADDRESS
5. U_INFO_AGE
6. U_INFO_LAST_LOGIN_DATE
7. U_INFO_LAST_LOGIN_TIME
现在我想创建一个名为 USR_LOG_INFO 的新 table,并向其添加 3 列,名为
1. U_INFO_ID
2. U_INFO_LAST_LOGIN_DATE
3. U_INFO_LAST_LOGIN_TIME
然后将相同列的数据从 USR_INFO 迁移到 USR_LOG_INFO 中的相似列。
这里基本上涉及2个步骤。
1.Create 新 table 称为 USR_LOG_INFO
2.Migrate 列数据从 USR_INFO 到 USR_LOG_INFO
有人可以给我 SQL 命令来执行以上 2 个步骤吗?
简单回答..不要..
alter table USR_INFO rename USR_LOG_INFO;
alter table USR_LOG_INFO add (U_INFO_ID NUMBER,
U_INFO_LAST_LOGIN_DATE DATE,
U_INFO_LAST_LOGIN_TIME DATE);
完成。
如果你真的想按照自己的方式去做。
create table USR_LOG_INFO as
select *
, to_number(NULL) U_INFO_ID
, to_date(null) U_INFO_LAST_LOGIN_DATE
, to_date(null) U_INFO_LAST_LOGIN_TIME
from USR_INFO;
drop table USR_INFO;
最后
为什么你有单独的 date/time 列
您最好只使用 TIMESTAMP 列并在需要时提取日期 and/or 时间。
另一种两步法:
create table USR_LOG_INFO
as
select *
from USR_INFO;
然后按照用户 Shoelace 的建议使用第二个 alter table
命令添加额外的列。
我避免了 drop table
这一步,因为通过阅读 OP 的问题,不清楚 OP 是否希望保留或删除原始 table。
我是数据库编程的新手,有一个问题。
在运行的 C++ 应用程序中,有一个 Oracle 数据库。 table 之一叫做 USR_INFO。它有多个列,例如,
1. U_INFO_ID
2. U_INFO_FIRST_NAME
3. U_INFO_LAST_NAME
4. U_INFO_ADDRESS
5. U_INFO_AGE
6. U_INFO_LAST_LOGIN_DATE
7. U_INFO_LAST_LOGIN_TIME
现在我想创建一个名为 USR_LOG_INFO 的新 table,并向其添加 3 列,名为
1. U_INFO_ID
2. U_INFO_LAST_LOGIN_DATE
3. U_INFO_LAST_LOGIN_TIME
然后将相同列的数据从 USR_INFO 迁移到 USR_LOG_INFO 中的相似列。
这里基本上涉及2个步骤。
1.Create 新 table 称为 USR_LOG_INFO
2.Migrate 列数据从 USR_INFO 到 USR_LOG_INFO
有人可以给我 SQL 命令来执行以上 2 个步骤吗?
简单回答..不要..
alter table USR_INFO rename USR_LOG_INFO;
alter table USR_LOG_INFO add (U_INFO_ID NUMBER,
U_INFO_LAST_LOGIN_DATE DATE,
U_INFO_LAST_LOGIN_TIME DATE);
完成。
如果你真的想按照自己的方式去做。
create table USR_LOG_INFO as
select *
, to_number(NULL) U_INFO_ID
, to_date(null) U_INFO_LAST_LOGIN_DATE
, to_date(null) U_INFO_LAST_LOGIN_TIME
from USR_INFO;
drop table USR_INFO;
最后 为什么你有单独的 date/time 列 您最好只使用 TIMESTAMP 列并在需要时提取日期 and/or 时间。
另一种两步法:
create table USR_LOG_INFO
as
select *
from USR_INFO;
然后按照用户 Shoelace 的建议使用第二个 alter table
命令添加额外的列。
我避免了 drop table
这一步,因为通过阅读 OP 的问题,不清楚 OP 是否希望保留或删除原始 table。