【发布时间】:2012-12-04 07:34:59
【问题描述】:
我想在 Oracle 表中插入一行。我有不能在插入脚本中发送mySeq.nextVal 的限制。如果我省略了那个 ID 字段,应用程序会尝试在那里插入 NULL。有一个在插入前使用触发器的解决方案。但我不想使用触发器。
有没有其他方法可以在 Oracle 表的 Sequence 字段中插入值?我可以更改 DDL 并将 mySeq.nextVal 作为 ID 字段的默认值吗?还是有其他想法?
【问题讨论】:
-
很遗憾,您不能将序列用作默认列值。你似乎已经排除了两种完美的方式来实现你所需要的。最好的方法是直接插入 seq.nextval,第二好的方法是使用触发器。为什么你不能使用这两种方法?请参阅此处了解更多信息:stackoverflow.com/questions/10613846/…
-
@LordPeter:这个令人讨厌的限制(你不能使用 nextval 作为默认值)最终将在即将推出的 12g 版本中删除。
-
从这里,我只有使用触发器的解决方案。