You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL已创建表新增列名自动小写问题及VARCHAR长度疑问

问题解答

列名变为rightname的原因

  • 多数关系型数据库对未加双引号的标识符(表名、列名这类)会自动统一大小写:比如PostgreSQL、MySQL默认转小写,Oracle默认转大写。
  • 你创建表时用test."persons",通过双引号强制保留了表名的大小写;但新增列时写的RightName没加双引号,数据库就自动把它转成了小写的rightname。
  • 要是想保留RightName的大小写,给列名加上双引号就行,语句改成这样:
    ALTER TABLE test."persons" 
    ADD COLUMN "RightName" VARCHAR(150);
    

VARCHAR列是否必须指定长度

这个得看你用的数据库:

  • MySQL/MariaDB:必须指定长度,不写的话会直接报错,比如得写成VARCHAR(150)。
  • PostgreSQL:可以不指定长度,直接写VARCHAR,效果和TEXT一样,能存任意长度的字符串(只要不超过数据库行大小限制)。
  • Oracle:必须指定长度,而且Oracle推荐用VARCHAR2代替VARCHAR,同样得明确长度,不然语法不通过。
  • SQL Server:不指定长度的话默认是1,但实际开发里建议显式写清楚长度,避免出现意料之外的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:50:27