5

基本的にすべてのデータベースで使用できるように、自動増分である列(IDと呼びます)を使用してSQLでテーブルを作成できる標準化された方法はありますか?

(たとえば、SQL-92で標準化されています)もしそうなら-どのように?そうでない場合、なぜですか?auto_incrementは非常に頻繁に使用されるプロパティだと思うので、標準化することが非常に重要だと思いました...

4

3 に答える 3

2

いいえ、ごめんなさい。MySQLにはAUTO_INCREMENTがありますが、たとえばMSSQLではこれはIDENTITYと呼ばれます。多くのものはSQLで実際には標準化されておらず、ほとんどはスキーマ作成領域にあります。

面倒ですが、Hibernate / NHibernateなどを使用して、単一のコードベースを使用することができます。

于 2013-02-28T23:30:54.313 に答える
1

いわゆる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

于 2019-04-27T09:37:23.840 に答える
0

Oracleでは、SEQUENCEを作成する必要があります

SQLiteはこれをROWIDとその同義語に使用します(例:RowIdSyn INTEGER PRIMARY KEY AUTOINCREMENT)

于 2017-11-25T21:42:30.273 に答える