不能插入:错误:数组值必须以&QUOT启动; {"或维度信息 [英] Cannot INSERT: ERROR: array value must start with "{" or dimension information

查看:1418
本文介绍了不能插入:错误:数组值必须以&QUOT启动; {"或维度信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  journeypost =#INSERT INTO user_data.user_data(用户名,randomint)VALUES('mahman',1);
错误:数组值必须以{或维度信息
LINE 1:... user_data.user_data(用户名,randomint)VALUES('mahman ...journeypost =#INSERT INTO user_data.user_data(用户名,randomint)VALUES {'mahman',1};
错误:语法错误或接近{
LINE 1:... O user_data.user_data(用户名,randomint)VALUES {'mahman',...journeypost =#INSERT INTO user_data.user_data(用户名,randomint)VALUES(2,{'mahman',1});
错误:语法错误或接近{
LINE 1:... ser_data.user_data(用户名,randomint)VALUES(2,{'mahman',...

以上不同的INSERT语句失败,PostgreSQL中。它是什么,我做错了?

编辑:

我的架构:

  journeypost =#\\ DT USER_DATA。*
           关系列表
  架构|名称|类型|所有者
----------- ----------- + ------- + ------- +
 USER_DATA | USER_DATA |表|用户
(1行)

我的表:

  journeypost =#\\ D user_data.user_data
           表user_data.user_data
  专栏|类型|修饰符
----------- + ------------------------- + -----------
 用户名|字符改变(50)[] |不为空
 randomint |整数|
索引:
    UsernameUnique主键,B树(用户名)


解决方案

您列用户名似乎是一个 阵列类型,所以文字'mahman 是无效的输入了。

这必须是的 '{} mahman

  INSERT INTO user_data.user_data(用户名,randomint)
VALUES({mahman},1);

(或使其纯 VARCHAR 列或文本列代替)。

更新证实了这一点:字符改变(50)[] 阵列的字符改变(50)

journeypost=# INSERT INTO user_data.user_data (username,randomint) VALUES ('mahman',1);
ERROR:  array value must start with "{" or dimension information
LINE 1: ... user_data.user_data (username,randomint) VALUES ('mahman...

journeypost=# INSERT INTO user_data.user_data (username,randomint) VALUES {'mahman',1};
ERROR:  syntax error at or near "{"
LINE 1: ...O user_data.user_data (username,randomint) VALUES {'mahman',...

journeypost=# INSERT INTO user_data.user_data (username,randomint) VALUES (2,{'mahman',1});
ERROR:  syntax error at or near "{"
LINE 1: ...ser_data.user_data (username,randomint) VALUES (2,{'mahman',...

The above varying INSERT statements fail, in PostgreSQL. What is it that I am doing wrong?

EDIT:

My schema:

journeypost=# \dt user_data.*
           List of relations
  Schema   |   Name    | Type  | Owner 
-----------+-----------+-------+-------
 user_data | user_data | table | user
(1 row)

My table:

journeypost=# \d user_data.user_data
           Table "user_data.user_data"
  Column   |          Type           | Modifiers 
-----------+-------------------------+-----------
 username  | character varying(50)[] | not null
 randomint | integer                 | 
Indexes:
    "UsernameUnique" PRIMARY KEY, btree (username)

解决方案

Your column username seems to be an array type, so the literal 'mahman' is not valid input for it.

It would have to be '{mahman}':

INSERT INTO user_data.user_data (username,randomint)
VALUES ('{mahman}',1);

(Or make it a plain varchar column or text column instead.)

Update confirms it: character varying(50)[] is an array of character varying(50).

这篇关于不能插入:错误:数组值必须以&QUOT启动; {"或维度信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆