As Daniel wrote it correctly, the behavior is by design in Adobe Campaign, due to the SQL functions used for doing the mapping between AC schemas and the underlying RDBMS engines, that you can read in the Administration>Settings>SQL scripts node.
For instance for SQL Server, AC never generates true primary key with autoincrement sequence nor cluster index for the primary key. The only way to do this, with the default factory SQL script for mapping (and I advise to not change them to keep Adobe support/guaranty), is to create the primary key/autoincrement/cluster index at SQL Server side.
So, either use Visual Studio UI or command line for the SQL script create table/alter table; if you don't have access to the SQL Server server itself, you can do it through Adobe Campaign client, either by using a workflow with SQL code activity, or by the menu Tools/Advanced/Update database structure, then select the table to alter, then it generates a sql code and you can modify it to force the cluster index/autoincrement then run it.
Your code looks correct to me. I have tested and works. On the database layer; OOTB schemas have the same pattern. In adobe campaign here is am example of the Tracking Logs schema where TrackingLogId is the pkey in the schema:
You can see it has a red key next to it to indicate primary key.
Whereas if I look in the underlying database - it see this: