否定楼上的做法,很浪费时间和空间,还耗费资源。载入每行的行号 load data infile * replace into table t ( seqno RECNUM //载入每行的行号 text Position(1:1024)) BEGINDATA fsdfasj //自动分配一行号给载入 表t 的seqno字段 此行为 1 fasdjfasdfl // 此行为 2关键在于那个 RECNUM
上述方案适用于一次性加载,如果需要多次加载的话,不能用,因为行号每次都是从1开始多次加载可以:1、建序列 SEQ_ID 2、在控制文件中指定 ID "SEQ_ID.NEXTVAL"但是这种情况下,一定要把 ID 字段放在控制文件最后,而且要使用 TRAILING NULLCOLS例如: LOAD DATA INFILE * APPEND INTO TABLE A FIELDS TERMINATED BY X'09' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS (NAME, ID "SEQ_ID.NEXTVAL" ) BEGINDATA "JONE" "JOKE" "JACK"
load data
infile *
replace into table t
( seqno RECNUM //载入每行的行号
text Position(1:1024))
BEGINDATA
fsdfasj //自动分配一行号给载入 表t 的seqno字段 此行为 1
fasdjfasdfl // 此行为 2关键在于那个 RECNUM
2、在控制文件中指定 ID "SEQ_ID.NEXTVAL"但是这种情况下,一定要把 ID 字段放在控制文件最后,而且要使用 TRAILING NULLCOLS例如:
LOAD DATA
INFILE *
APPEND INTO TABLE A
FIELDS TERMINATED BY X'09' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(NAME,
ID "SEQ_ID.NEXTVAL"
)
BEGINDATA
"JONE"
"JOKE"
"JACK"