在zend中,我为特定模块创建了mapper和model。我正在尝试将数据从zend控制器文件保存到表中
我使用postgresql作为数据库。我已经设置了一个带有主键的表来自动递增
表名和相应的主键如下:
tbl_user_group_business_prmission --table
pk_bint_user_group_business_prmission_id --primary key
主键生成如下:
nextval('tbl_user_group_business_prmission_pk_bint_user_group_business_prmission_id_seq'::regclass)
你可以看到nextval()中的参数计数(字符)超过60.这是我面临的问题。即我无法在此表中插入数据,因为此参数在计数(字符)
中超过60我收到的错误是“主键无法生成”。
仅当nextval()内的字符超过60
时才会出现此问题答案 0 :(得分:1)
postgres系统使用不超过63个字节的标识符;较长的名称可以用命令编写,但它们会被截断。请查看本手册SQL-SYNTAX-IDENTIFIERS。
但您可以通过创建自定义CREATE SEQUENCE
或通过phppgadmin或pgAdmin界面更新序列的名称。
在这种情况下,最好更改table name
或primary key column name
更短,因为在zend中硬编码通过连接tableName + columnName +来创建序列...您可以在此处查看代码{ {1}}函数/Zend/Db/Adapter/Pdo/Pgsql.php
编辑:
这个SO post