更新时间:2022-10-23 22:52:03
You don't want to use ROWID
as a primary key, because it is not guaranteed to be stable over the lifetime of a row.
Adding a synthetic key is the best bet. Use a trigger to populate the column with a sequence value.
You are a bit vague on the legacy aspect, so it is difficult to be certain what the implications are. Adding a column would break any insert statement which doesn't explicitly list the target columns. It might also break any SELECT *
queries (unless they select into a variable declared using the %ROWTYPE
keyword. But you wouldn't have to change any other application so it used the new primary key instead of the existing columns - unless you really want to.