我想向数据库中的表中插入一个项目。该表有一个自动生成的键。是否可以覆盖自动生成的 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/