0

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

所以问题是:

  1. 仅仅为了这个小要求,是否值得在这个模式中创建一个序列?
  2. 如果对 1 的回答是否定的,那么计划 b 可能是什么?
4

3 回答 3

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

  2. 不适用

于 2013-05-24T15:03:07.873 回答
3

几种方式:

  1. 使用 UUID。UUID 是伪随机的大字母数字字符串,一旦生成就保证是唯一的。
  2. 数据有什么独特之处吗?像时间戳或IP地址等?如果是这样,请使用它
  3. 当前时间戳+数据中一些不那么唯一的值的组合
  4. 当前时间戳+i您不断增加的某个整数的组合

还有其他的(包括生成校验和、自定义随机数而不是 UUID 等)——但这些都有重叠的可能性,所以不提了。

编辑:小的澄清

于 2013-05-24T15:22:18.110 回答
0

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

INSERT INTO mytable
SELECT ROWNUM AS ID
      ,etc AS etc
FROM ...
于 2013-05-27T06:30:01.360 回答