1
有沒有辦法在使用ODBC目錄函數(如SQLColumns)時判斷列是否爲自動增量(又名串行,又名身份)列?我特別感興趣的是MySQL作爲一個來源。如何通過ODBC目錄函數識別「自動增量」屬性
有沒有辦法在使用ODBC目錄函數(如SQLColumns)時判斷列是否爲自動增量(又名串行,又名身份)列?我特別感興趣的是MySQL作爲一個來源。如何通過ODBC目錄函數識別「自動增量」屬性
我不知道關於mysql,但SQLColumns的一些驅動程序返回其他字段,可以告訴你一個列是否是一個標識列。例如,
SQL> create table mje(a int identity);
$ perl -e 'use DBI;use Data::Dumper;my $h = DBI->connect("dbi:ODBC:xx","xx","xx");my $s = $h->column_info(undef, undef, "mje", q/%/); print Dumper($s->{NAME});print $s->dump_results;'
$VAR1 = [
'TABLE_CAT',
'TABLE_SCHEM',
'TABLE_NAME',
'COLUMN_NAME',
'DATA_TYPE',
'TYPE_NAME',
'COLUMN_SIZE',
'BUFFER_LENGTH',
'DECIMAL_DIGITS',
'RADIX',
'NULLABLE',
'REMARKS',
'COLUMN_DEF',
'SQL_DATA_TYPE',
'SQL_DATETIME_SUB',
'CHAR_OCTET_LENGTH',
'ORDINAL_POSITION',
'IS_NULLABLE',
'SS_IS_SPARSE',
'SS_IS_COLUMN_SET',
'SS_IS_COMPUTED',
'SS_IS_IDENTITY',
'SS_UDT_CATALOG_NAME',
'SS_UDT_SCHEMA_NAME',
'SS_UDT_ASSEMBLY_TYPE_NAME',
'SS_XML_SCHEMACOLLECTION_CATALOG_NAME',
'SS_XML_SCHEMACOLLECTION_SCHEMA_NAME',
'SS_XML_SCHEMACOLLECTION_NAME',
'SS_DATA_TYPE'
];
'master', 'dbo', 'mje', 'a', '4', 'int identity', 10, 4, '0', '10', '0', undef, undef, '4', undef, undef, 1, 'NO', '0', '0', '0', '1', undef, undef, undef, undef, undef, undef, '56'
1 rows
以上是其a)支持SS_IS_IDENTITY和b)示出了對於類型名稱 'INT標識' 的斯軟件MS SQL Server ODBC驅動。