推进 - 检查列是否为自动增量

时间:2016-07-08 11:10:44

标签: php sql oop orm propel

propel2是否有办法检查列是autoincrement?我的假设是使用与

类似的东西
$query = new UsersQuery();

$columns = $query->getTableMap()->getColumns();

foreach ($columns as $column) {
    $column->isAutoIncrement(); //method does not exist
}

但是,在迭代autoincrement的结果时,实际上不会检查列是否为getColumns的任何内容都不存在。在这种情况下可以做些什么?

1 个答案:

答案 0 :(得分:1)

默认值AUTO_INCREMENT是特定于驱动程序的。你不能指望一种专门用于此的方法。它可能是MySQL中的AUTOINCREMENT,PostgreSQL中的SEQUENCE等等......

我建议的是找到主键,因为我希望您搜索此列。

另一种解决方法是从迁移中获取CREATE TABLE代码并手动解析它。但是没有内置的方法。即使您执行getDefaultValue(),您也不会收到AUTO_INCREMENT,但NULL会收到该列。