I have a table that does not have a primary key:
I'm able to create MV logs on the table — without specifying whether to use the primary key or the rowid:
create materialized view log on maximo.workorder;
It looks like Oracle has chosen to create the MV logs using the primary key option (even though the table doesn't have a primary key):
I've tested the MV logs and they are working correctly. Any edits that I make to the WORKORDER table are showing up in the MV logs.
Why is it possible for Oracle to create the MV logs using the primary key option — even though the table doesn't have a primary key?
Edit:
Related question here: Create fast-refresh MV over dblink on table without PK?
ROWID
pseudocolumnDBA_CONSTRAINTS
WHERE TABLE_NAME='WORKORDER'
?DBA_CONSTRAINTS
. But I do have access toALL_CONSTRAINTS
. I performed this queryselect * from all_constraints where table_name='WORKORDER' and owner = 'MAXIMO'
. ... And I've shared it as a WITH/query on db<>fiddle: dbfiddle.uk/…. Is that what you were looking for?