【问题标题】:Propel - check if column is autoincrementPropel - 检查列是否为自动增量
【发布时间】:2016-07-08 11:10:44
【问题描述】:

propel2 中有没有办法检查列是否为 autoincrement ?我的假设是使用类似于

$query = new UsersQuery();

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

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

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

【问题讨论】:

    标签: php sql oop orm propel


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-26
      • 2016-03-15
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多