次のようなテーブルの場合:
create table foo (id int identity primary key)
id
システム テーブルにクエリを実行して、それが実際にIDENTITY
列であるかどうかを判断したいと思います。
私が見つけた最も近いものは次のとおりです。
select tc.max_identity from systabcol tc
join systab t on t.table_id = tc.table_id
where t.table_name = 'foo'
残念ながら、ID でmax_identity
は0
ない列に対しても、0
まだ使用されていない ID に対してもです。NULL
それが非アイデンティティ用だったらよかったのに。
この関数を使用してGET_IDENTITY
、テーブルにIDENTITY
列があるかどうかを確認できますが、ID 値が失われ、それがどの列であるかはまだわかりません。
これは、 0.05002 の DBIx::Class::Schema::Loader での基本的な SQL Anywhere サポートに必要な最後のものです。