According to Oracle, there are more that 500 new features in 12c. As you would expect, many of them are of minor importance to most people, affecting features we don’t use, or options that we can’t afford to use. But there are some really nice things in this release that I want to highlight. I’m going to start with the “it’s about time” series. This first one is huge!
Seriously Oracle, why did it take until release 12 to implement what MySQL has always had. We (Oracle DBA’s) have been taunted for too long about how we have to make create a sequence and trigger to do what they can do with a simple keyword, autoincrement. Having a direct, clean autoincrement capability would be fantastic, but alas too much to hope for even in Oracle’s most advanced release of their flagship product. But at least the trigger can be avoided now because we can finally put <sequence_name>.nextval into the default for a column.
This is a great thing because it reduces the complexity of coding a surrogate primary key, which is a very common operation. By keeping the standalone sequence, we keep the flexibility that offers, at least that’s how I’m going to spin this in my mind. Maybe someday they’ll add an “internal sequence” of some sort (like an internal trigger that gets used for some operation) that has a forced mapping to a table/column. Really I’d like to have both as options, a traditional sequence when you really need it, and a captive, self-maintained sequence for the vast majority of cases where simple is good enough.
Really though, I’m very happy about what they did give us — It’s about time . . .
