【问题标题】:Cannot INSERT: ERROR: array value must start with "{" or dimension information无法插入:错误:数组值必须以“{”或维度信息开头
【发布时间】:2015-10-09 17:27:09
【问题描述】:
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...
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',...
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',...

上述不同的INSERT 语句在 PostgreSQL 中失败。我到底做错了什么?

我的架构:

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

我的桌子:

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)

【问题讨论】:

  • 我应该保留这个问题吗?现在我看到它确实看起来很傻。
  • 您不是第一个错过尾随 [] 字符重要性的人,因此它可能对其他人有用。
  • 我刚刚被这个,相当新的 Postgres 抓住了,这真的很有用。谢谢。

标签: arrays postgresql types sql-insert


【解决方案1】:

您的列 username 似乎是 array 类型,因此文字 'mahman' 不是它的有效输入。

必须是 '{mahman}'

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

(或者改为普通的varchar 列或text 列。)

更新确认:character varying(50)[]character varying(50)数组

关于array literal/array constructor

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    相关资源
    最近更新 更多