psql 终端中的字符串文字

String literals in psql terminal

我试图在 postgresql 中创建一个 table 并向其中插入一些数据 table。但是,即使我使用 ' 或 ".

,它也会给我的字符串文字带来错误

请帮忙。

sujith=# CREATE TABLE venue (
sujith(#     oid integer NOT NULL,
sujith(#     id integer NOT NULL,
sujith(#     name varchar[30] NOT NULL,
sujith(#     _time_seq_ integer,
sujith(#     _modified_by_ integer,
sujith(#     _modified_on_ timestamp without time zone
sujith(# );
CREATE TABLE
sujith=# INSERT INTO VENUE (oid, id, name) values ( 0 , 1 , 'ibm' );
ERROR:  malformed array literal: "ibm"
LINE 1: INSERT INTO VENUE (oid, id, name) values ( 0 , 1 , 'ibm' );
                                                           ^
DETAIL:  Array value must start with "{" or dimension information.
sujith=# INSERT INTO VENUE (oid, id, name) values ( 0 , 1 , "ibm" );
ERROR:  column "ibm" does not exist
LINE 1: INSERT INTO VENUE (oid, id, name) values ( 0 , 1 , "ibm" );
                                                           ^
sujith=# 

只需将 [] 替换为 () 即可解决您的问题。因此,将 varchar[30] 替换为 varchar(30)

CREATE TABLE venue (
oid integer NOT NULL,
 id integer NOT NULL,
name varchar(30) NOT NULL,
_time_seq_ integer,
_modified_by_ integer,
_modified_on_ timestamp without time zone );

INSERT INTO VENUE (oid, id, name) values ( 0 , 1 , 'ibm' );