您可以查询表 COLUMNS 在mysql信息模式中,使用列 EXTRA . 您可以假设自动递增的列是integer数据类型,不可为null,并且没有默认值。
my $sql = q{SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = ?
AND TABLE_NAME = ?
AND ORDINAL_POSITION = 1
AND DATA_TYPE = 'int'
AND COLUMN_DEFAULT IS NULL
AND IS_NULLABLE = 'NO'
AND EXTRA like '%auto_increment%'};
my ($first_col_is_autoincrement) =
$dbh->selectrow_array( $sql, undef, $db_name, $table_name );
1条答案
按热度按时间vwoqyblh1#
您可以查询表
COLUMNS
在mysql信息模式中,使用列EXTRA
.您可以假设自动递增的列是integer数据类型,不可为null,并且没有默认值。
也可以使用dbi catalog函数以独立于数据库的方式实现相同的操作。