propel2
是否有办法检查列是autoincrement
?我的假设是使用与
$query = new UsersQuery();
$columns = $query->getTableMap()->getColumns();
foreach ($columns as $column) {
$column->isAutoIncrement(); //method does not exist
}
但是,在迭代autoincrement
的结果时,实际上不会检查列是否为getColumns
的任何内容都不存在。在这种情况下可以做些什么?
答案 0 :(得分:1)
默认值AUTO_INCREMENT
是特定于驱动程序的。你不能指望一种专门用于此的方法。它可能是MySQL中的AUTOINCREMENT
,PostgreSQL中的SEQUENCE
等等......
我建议的是找到主键,因为我希望您搜索此列。
另一种解决方法是从迁移中获取CREATE TABLE代码并手动解析它。但是没有内置的方法。即使您执行getDefaultValue()
,您也不会收到AUTO_INCREMENT
,但NULL
会收到该列。