try->
insert into B(GUID,T1,T2,T3)
select A序列名.nextval,T1,T2,T3 from A
insert into B(GUID,T1,T2,T3)
select A序列名.nextval,T1,T2,T3 from A
解决方案 »
- xml+xslt生成html的疑惑
- 请教做动态图表的思路
- MVC2 集成FCKEditor 在本地能上传图片和媒体文件,但发布到服务端能图片,不能媒体,不能创建子目录
- 关于2次提交取值
- 高分 求助 JQuery 操作XML
- asp.net + odbc + MYsql 链接数据出错~~~在线等!
- VS2005和VS.NET2005和Visual Studio 2005 Express Edition之间的关系
- 在sqlserver 中有没有 象oracle 中rowid 标识第几行的关键字
- 发布一个Grid控件,可以添加、更新、删除以及子表显示
- ASP.NET 2.0的PasswordRecovery控件怎么发不出邮件
- ORACLE SQL语句问题
- XML和RDF的区别
select A序列名.nextval from dual--取序列,写成函数insert into B(GUID,T1,T2,T3)
select F_GetSeq(),T1,T2,T3 from A,dual
select (select A序列名.nextval from dual),T1,T2,T3 from A
在表B上建触发器,示例
create or replace trigger mytable_trig_autoinc
before insert on mytable
for each row
begin
if (:new.id is null) then
select mytable_seq.nextval into :new.id from dual;
end if;
我试写了一个不要手动创建B表,直接执行这个就可以了
select IDENTITY(int,1,1) as guid,* into B from A
create or replace trigger tableB_trig_autoinc
before insert on 表B
for each row
begin
if (:new.id is null) then
select 表B序列名.nextval into :new.id from dual;
end if;
end;
-----------
GUID和自增有什么关系?和序列有什么关系?直接调用sys_guid()函数即可...
都没注意看,直接当成sql在想了...那抱歉了,oracle不熟,而且电脑里也没有
帮不了楼主啦
select GUID=identity(int,1,1),* into B from A
select * from B
表B里面就有A里面的数据了!
估计楼主的意思..就是要一个自增主键,名字刚好叫GUID的...
是ORACLE下的,高手们还有什么办法没有啊
INSERT INTO B(GUID, T1, T2, T3) SELECT B表序列名.NEXTVAL, T1,T2,T3 FROM DUAL, A感谢大家啊!
这个是可以的:
INSERT INTO B(GUID, T1, T2, T3) SELECT B表序列名.NEXTVAL, T1,T2,T3 FROM DUAL, A
但加上条件就不行了,下面这个说不允许序列:
INSERT INTO B(GUID, T1, T2, T3) SELECT B表序列名.NEXTVAL, T1,T2,T3 FROM DUAL, A where T1='1' ORDER BY T2
这是怎么回事啊?
SQL codecreate or replace trigger tableB_trig_autoinc
before insert on 表B
for each row
begin
if (:new.id is null) then
select 表B序列名.nextval into :new.id from dual;
end if;
end;
还是用SQL语句来得直接些吧?
CREATE OR REPLACE TRIGGER GZJH_ID
BEFORE INSERT ON GZJH FOR EACH ROW
BEGIN
SELECT GZJH_ID.NEXTVAL INTO :NEW.id FROM DUAL;
END;
CREATE OR REPLACE TRIGGER SP_ID
BEFORE INSERT ON GZJH FOR EACH ROW
BEGIN
SELECT SP_ID.NEXTVAL INTO :NEW.id FROM DUAL;
END;
1)不加条件全表复制
INSERT INTO B(GUID, T1, T2, T3)
SELECT 序列名.NEXTVAL, T1,T2,T3 FROM A ;2)加上条件
INSERT INTO B(GUID, T1, T2, T3)
SELECT 序列名.NEXTVAL, T1,T2,T3 FROM A where T1='1';
说明:insert into 采用SQL子句的方式是不能加order by ,你想想,加order by 有意义吗