楼主如何实现在表的中间插入一个字段的?Oracle 默认会添加到表的最后,如果想把列放到中间,可以周转一下,用现在的表做基表创建一张新表,然后对表rename。create table a select col1,col2,col3 from b.列的顺序自己指定。
楼上正解 假如ttt表需要新增加一列 filed_newalter table ttt add cloumn filed_new varchar2(60);create table test1 ( a, b, filed_new, c, d ) as select a, b, filed_new, c, d from ttt;drop table ttt; alter table test1 rename to ttt;
create table jimmy select empno,ename,deptno from emp; 这边提示错误 select 是怎么回事呢?
SQL> create table jimmy select empno,ename,deptno from emp;
create table jimmy select empno,ename,deptno from emp
ORA-00922: missing or invalid option
jimmy表与select empno,ename,deptno from emp; 的字段对应不,字段的类型是否一致?
create table jimmy as select empno,ename,deptno from emp;
这正是Oacle性能好的原因所在,大型数据库仓储都选择用Oacle. 因为已建立好的表,它所有字段的物理地址是无法改变的,所有你新建的字段只能在最后啦。 你想改变的话,除非再重新建一张新表。字段在前在后没有什么关系的,只要前台程序能保证“添删改查”等操作没有问题就行了;前台程序查询时禁止使用select * from tb ,这样字段顺序改变了,你程序就会出错了,而且这样效率不高,要求将待显示的字段全部一个一个的列出来,不要偷懒
楼主如何实现在表的中间插入一个字段的?Oracle 默认会添加到表的最后,如果想把列放到中间,可以周转一下,用现在的表做基表创建一张新表,然后对表rename。create table a select col1,col2,col3 from b.列的顺序自己指定。
假如ttt表需要新增加一列 filed_newalter table ttt add cloumn filed_new varchar2(60);create table test1
(
a,
b,
filed_new,
c,
d
)
as
select a,
b,
filed_new,
c,
d
from ttt;drop table ttt;
alter table test1 rename to ttt;
create table jimmy select empno,ename,deptno from emp
ORA-00922: missing or invalid option
jimmy表与select empno,ename,deptno from emp;
的字段对应不,字段的类型是否一致?
因为已建立好的表,它所有字段的物理地址是无法改变的,所有你新建的字段只能在最后啦。
你想改变的话,除非再重新建一张新表。字段在前在后没有什么关系的,只要前台程序能保证“添删改查”等操作没有问题就行了;前台程序查询时禁止使用select * from tb ,这样字段顺序改变了,你程序就会出错了,而且这样效率不高,要求将待显示的字段全部一个一个的列出来,不要偷懒