前几天使用开始使用oracle,把本地的数据库导入到另一个服务器上,像向其中一个表中插入数据时,发现主键不唯一。代码也没错在网上找了各种方法,最后发现是服务器上的数据库没有为该变建立相应的 sequence。建好sequence后还是不对(start with 1)。使用 select tablename_seq.nextvalue from dual (tablename_seq为表对应的sequence名)进行查询,返回的结果为 nextvalue=1,导入数据时已经将id = 1占用所以报错。删除掉原来的sequence重新建 就好了。
删除: drop sequence tablename_seq;
建立:
CREATE SEQUENCE tablename_seq tablename_seq 要创建的sequence的名字
INCREMENT BY 1 每次加几个
START WITH X 从X开始计数
NOMAXVALUE 不设置最大值
NOCYCLE 一直累加,不循环
NOCACHE; 不缓存