无法插入:错误:数组值必须以“”或维度信息开头
Posted
技术标签:
【中文标题】无法插入:错误:数组值必须以“”或维度信息开头【英文标题】: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 抓住了,这真的很有用。谢谢。
【参考方案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:
Pass array from node-postgres to plpgsql function How to pass custom type array to Postgres function【讨论】:
以上是关于无法插入:错误:数组值必须以“”或维度信息开头的主要内容,如果未能解决你的问题,请参考以下文章
Symfony2 - 方法名称必须以findBy或findOneBy开头
Laravel - 错误信息没有转化为实际的错误信息,以“验证”开头。
信息:无法打开物理文件“路径”。操作错误5:“5(拒绝访问。)”(MICROSOFT SQL Server,错误:5120)