You need to enable JavaScript to run this app. PostgreSQL建表报错:DEFAULT应为varchar类型但'0'为int类型如何解决
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL建表报错:DEFAULT应为varchar类型但'0'为int类型如何解决

问题判断

你的判断完全正确,报错的核心原因就是字段类型和默认值的类型不匹配。
当前使用的是强类型校验的关系型数据库(从语句里的SERIAL关键字判断大概率是PostgreSQL),要求字段默认值的类型必须和字段声明的类型严格匹配:lang字段声明为varchar(5)字符串类型,但是语句里给的默认值0是整数类型,触发了类型校验失败的报错。

修复方案

  • 首先修正建表语句里的对应字段定义,把lang varchar(5) DEFAULT 0 NOT NULL修改为lang varchar(5) DEFAULT '0' NOT NULL即可。

注意:SQL标准里字符串常量用单引号包裹,不要用双引号,多数数据库中双引号是用来标识表名、字段名等系统标识符的,用双引号包裹"0"会被识别为字段名而非字符串值,反而会触发新的报错。

  • 找到安装程序内置的对应SQL脚本文件,替换上面的错误语句后重新运行安装程序即可。如果安装流程已经执行到一半中断,也可以手动执行修正后的建表语句,再跳过该步骤继续后续安装流程。
  • 建议同时排查安装脚本里所有建表语句的varchar/char/text等字符串类型字段的默认值,避免出现同类类型不匹配的问题。

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 13:15:08