在Win 10上使用Postgres 14。运行这个简单的查询:
mydata=# SELECT * FROM contact_test;
cntct_id | fname | lname | email | street | unit | town | state | post_code
----------+-------+-------+-------+--------+------+------+-------+-----------
(0 rows)
mydata=# INSERT INTO contact_test (fname, lname, email) VALUES ('Robert', 'Johnson', 'rjohnsonn@gmail.com');
ERROR: malformed array literal: "Robert"
LINE 1: ...T INTO contact_test (fname, lname, email) VALUES ('Robert', ...
^
DETAIL: Array value must start with "{" or dimension information.
我在这里查看了语法:
这个示例基本上与我的语句相同:
INSERT INTO products (product_no, name, price) VALUES
(1, 'Cheese', 9.99);
我错过了什么?
1条答案
按热度按时间j5fpnvbx1#
给定在注解中添加的表定义,以下语句将起作用:
fname
和lname
是 array 类型,因此需要传递 array literals(或 array constructors)。示例:但是你的表定义当然是无稽之谈。您不希望使用内部枚举类型
"char"
,因为它只包含一个ASCII字母。您需要varchar
或text
。我也不相信你想要数组类型。("char"[]
是"char"
的数组。)相应地修正你的表定义!比如:
那么你原来的
INSERT
语句就可以工作了。参见: