mysql - MySQL - DBI:如何判断第一列是否为自增列?
问题描述
是否可以使用此信息可靠地判断表的第一列是否为自动增量列?
可用信息如下:
database handle ($dbh)
database name
table name
解决方案
您可以使用 column查询mysql 信息架构中的表COLUMNS
EXTRA
。
您会假设自动增量列是整数数据类型,不可为空且没有默认值。
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 );
也可能使用DBI 目录函数以独立于数据库的方式实现相同的操作。
推荐阅读
- javascript - 演绎多重复选框选择产品过滤器
- excel - 使用 for 循环在 excel 中创建运行总计
- google-analytics-api - 开发 Google Analytics Reporting API v4 错误:JsonParseException: Unexpected character ((CTRL-CHAR, code 130))
- java - JavaFX 按钮操作未访问 ListView 选定项
- windows - 如何将 WiFi 网络适配器添加到 VMware 播放器上的虚拟 Windows 10
- linux - 在文件上使用粘贴命令并将结果保存到同一文件
- c# - Entity Framework Core - 附加条件 where 子句
- python - 从曲线创建距离矩阵
- javascript - 有没有更快的方法来隐藏/显示 html 元素?
- javascript - 字符串不替换单词