Propel - 检查列是不是为自动增量
Posted
技术标签:
【中文标题】Propel - 检查列是不是为自动增量【英文标题】: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
的内容并不存在。在这种情况下可以做什么?
【问题讨论】:
【参考方案1】:默认值AUTO_INCREMENT
是特定于驱动程序的。您不能指望专门用于此的方法。在 mysql 中可能是 AUTOINCREMENT
,在 PostgreSQL 中可能是 SEQUENCE
,等等...
我的建议是找到主键,因为我希望您确实搜索此列。
另一种解决方法是从迁移中获取 CREATE TABLE 代码并手动解析它。但是没有内置的方法。即使您执行getDefaultValue()
,您也不会收到AUTO_INCREMENT
,而是该列的NULL
。
【讨论】:
以上是关于Propel - 检查列是不是为自动增量的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - Cockroach DB - 自动增量正在生成 UUID