database - 插入时 DB2 覆盖自动生成的键

标签 database db2 identity

我想向数据库中的表中插入一个项目。该表有一个自动生成的键。是否可以覆盖自动生成的 key (强制值)。如果是怎么办?

最佳答案

我假设您是在谈论标识列而不是序列。

在 DB2 的 CREATE TABLE 中语法,请查看语法图中与标识列相关的“generated-column-spec”。有两种方法可以指定如何生成标识值:

  • GENERATED ALWAYS:此选项将始终生成标识值,您不能在插入语句中为标识列指定值
  • GENERATED BY DEFAULT:如果在插入语句中未指定列值,则此选项将生成标识值。如果您在插入语句中为列提供值,db2 将不会为其生成标识值。

如果您尝试插入的表在创建时使用了 ALWAYS 选项,那么您不能覆盖它。您需要删除并重新创建表或使用 ALTER TABLE语句重新定义列以默认仅生成标识值。

关于database - 插入时 DB2 覆盖自动生成的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1798104/

相关文章:

mysql - DataMapper 枚举字段在保存或更新时不会保留

android - 使用 RecyclerView 的房间数据库 View

sql-server - 通过 sqoop 从 SQL Server 导入和导出数据,字段包含各种文本

linux - DB2 docker共享内存段无法分配

java - 将数据从一个表移动到另一个类似表

ruby-on-rails - 如何测试 (ActiveRecord) 对象是否相等

python - 为什么使用 '==' 或 'is' 比较字符串有时会产生不同的结果?

database - 有谁知道一个很好的图书馆可以将一个人的名字映射到他或她的性别?

database - 如何将 Microsoft Access .accdb 数据库文件中的数据读入 R?

language-agnostic - DDD : refer to an entity inside an aggregate root by its identity