基本的にすべてのデータベースで使用できるように、自動増分である列(IDと呼びます)を使用してSQLでテーブルを作成できる標準化された方法はありますか?
(たとえば、SQL-92で標準化されています)もしそうなら-どのように?そうでない場合、なぜですか?auto_incrementは非常に頻繁に使用されるプロパティだと思うので、標準化することが非常に重要だと思いました...
いいえ、ごめんなさい。MySQLにはAUTO_INCREMENTがありますが、たとえばMSSQLではこれはIDENTITYと呼ばれます。多くのものはSQLで実際には標準化されておらず、ほとんどはスキーマ作成領域にあります。
面倒ですが、Hibernate / NHibernateなどを使用して、単一のコードベースを使用することができます。
いわゆるID列を使用できます。
CREATE TABLE foo(id int GENERATED ALWAYS AS IDENTITY);
これはSQL標準であり、PostgreSQL10およびOracleでサポートされている必要があります。
https://www.2ndquadrant.com/en/blog/postgresql-10-identity-columns/#comment-248607
Oracleでは、SEQUENCEを作成する必要があります
SQLiteはこれをROWIDとその同義語に使用します(例:RowIdSyn INTEGER PRIMARY KEY AUTOINCREMENT)