Since the project is on GitHub, you can contribute PKs to the schema.
#Psequel cannot edit tables without primary key archive#
But, I can see how someone would think that since the only source of data comes from the non archive table that have PKs, so there is less risk. I guess it was a design choice, you can argue that a table without a primary key is not a relation and of course has no guarantee of being able to identify every row.
Now it's obvious that the Archive tables have no primary keys. You will get the following list: TABLE_NAME SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS To see which tables have no primary key, run the following script: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES History table cannot have constraints (primary key, foreign key, table So the explanation is very simple as per the docs. Below is a list of tables in Microsoft System Center Configuration Manager database without primary keys. It's true, without a primary key (or some unique key), you don't have an insertion anomaly if you go to insert the same data multiple. It makes it much easier to maintain the data. Every table should have some column (or set of columns) that uniquely identifies one and only one row. You will see that 100% of these are the history table component of a temporal table pair. One row represents one table in a database Scope of rows: all tables without primary keys in a database Ordered by schema, table name Sample results. Should you create a database table without a primary key No. | Sales | Customers_Archive | HISTORY_TABLE | | Sales | CustomerCategories_Archive | HISTORY_TABLE | | Sales | BuyingGroups_Archive | HISTORY_TABLE | | Purchasing | Suppliers_Archive | HISTORY_TABLE | | Purchasing | SupplierCategories_Archive | HISTORY_TABLE | | Application | TransactionTypes_Archive | HISTORY_TABLE | | Application | StateProvinces_Archive | HISTORY_TABLE |
| Application | People_Archive | HISTORY_TABLE | | Application | PaymentMethods_Archive | HISTORY_TABLE | | Application | DeliveryMethods_Archive | HISTORY_TABLE | | Application | Countries_Archive | HISTORY_TABLE | | Application | Cities_Archive | HISTORY_TABLE | | Warehouse | StockItems_Archive | HISTORY_TABLE | | Warehouse | StockGroups_Archive | HISTORY_TABLE | | Warehouse | PackageTypes_Archive | HISTORY_TABLE | | Warehouse | Colors_Archive | HISTORY_TABLE | | Warehouse | ColdRoomTemperatures_Archive | HISTORY_TABLE | WHERE object_id NOT IN (SELECT parent_object_id You can run the following query to see the tables with no primary key.