有没有办法生成没有序列的ID?

时间:2013-05-24 15:00:08

标签: oracle

当前应用程序使用JPA自动生成表/实体ID。现在,需求想要获取查询以使用SQL查询手动将数据插入数据库

所以问题是:

  1. 是否值得在这个模式中创建一个只是为了这个小要求?
  2. 如果对1的答案为否,那么可能是一个计划b?

3 个答案:

答案 0 :(得分:3)

  1. 是。一个序列是微不足道的 - 为什么你这样做?

  2. N / A

答案 1 :(得分:3)

几种方式:

  1. Use a UUID。 UUID是伪随机的大型字母数字字符串,保证一旦生成就是唯一的。
  2. 数据是否有独特之处?像时间戳,IP地址等?如果是这样,请使用
  3. 当前时间戳的组合+数据中一些不太独特的值
  4. 当前时间戳的组合+您继续递增的某个整数i
  5. 还有其他(包括生成校验和,自定义随机数而不是UUID等) - 但这些可能存在重叠,所以不提及它们。

    编辑:次要说明

答案 2 :(得分:0)

您是只是将单个数据加载到空表中,并且没有其他用户同时插入数据?如果是这样,您可以使用ROWNUM生成从1开始的ID,例如

INSERT INTO mytable
SELECT ROWNUM AS ID
      ,etc AS etc
FROM ...