用PL/SQL Developer向Oracle数据库中导入TXT格式的数据时,主键如何使用已设定的序列?
如题,我用的TextImporter功能。txt文件中没有主键这一列,我在PL/SQL中创建了一个序列,想在导入的时候使用这个定义好的序列作为主键,请问如何操作?补充:自...
如题,我用的Text Importer功能。txt文件中没有主键这一列,我在PL/SQL中创建了一个序列,想在导入的时候使用这个定义好的序列作为主键,请问如何操作?
补充:自己稍稍研究了一下,问题已经解决了。不过,还是希望听听大家的做法,暂时不结贴。 展开
补充:自己稍稍研究了一下,问题已经解决了。不过,还是希望听听大家的做法,暂时不结贴。 展开
2个回答
展开全部
用TRIGGER触发
SELECT SEQUENCE.NEXTVAL
INTO :NEW.主皮伏键
FROM DUAL;
还有一种方式,做个临时表,没有主没握高键的,先导入这里,然后用枯尺
INSERT **
SELECT SEQUENCE.NEXTVAL, *
FROM 临时表
SELECT SEQUENCE.NEXTVAL
INTO :NEW.主皮伏键
FROM DUAL;
还有一种方式,做个临时表,没有主没握高键的,先导入这里,然后用枯尺
INSERT **
SELECT SEQUENCE.NEXTVAL, *
FROM 临时表
追问
第二种方法肯定是没问题的。
第一种方法,我自己也试过了,没问题。
create or replace trigger before_table_insert
before insert on table
begin
SELECT SEQUENCE.NEXTVAL
INTO :NEW.ID
FROM DUAL;
end before_table_insert;
展开全部
CREATE SEQUENCE seq_test START WITH 1 INCREMENT BY 1;
CREATE TABLE tmp_test (c_id NUMBER(10),c_name VARCHAR2(20));
BEGIN
FOR i IN 1..100 LOOP
INSERT INTO tmp_test values(seq_test.nextval,'teste'||seq_test.nextval);
END LOOP;
END;
CREATE TABLE tmp_test (c_id NUMBER(10),c_name VARCHAR2(20));
BEGIN
FOR i IN 1..100 LOOP
INSERT INTO tmp_test values(seq_test.nextval,'teste'||seq_test.nextval);
END LOOP;
END;
更多追问追答
追问
不好意思,您貌似没有回答我的问题。
追答
设置C-ID是主键就可以了 你插入ID的时候用序列 就行了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询