-1

我有个问题。我无法发送查询(只是示例):

INSERT INTO base1(id, f1) VALUES(1, 'abc');

来自控制台的错误:

错误:pq:类型字符的值太长(1)

再举一个例子,我可以这样做:

INSERT INTO base1(id, f1) VALUES(1, 'ab');

我尝试了很多解决方案,但没有效果。我是新手,所以我想从脚本中查询有限制?我试图把它放在控制台中,我可以做到,只是一个脚本不能通过:(

[编辑 1]

我忘记了创建表的脚本:

CREATE TABLE base1 
(
    id INT PRIMARY KEY,
    f1 TEXT NOT NULL
);

[编辑 2]

源表和代码:

 CREATE TABLE ip_logs
 (
      ip_id INT PRIMARY KEY,
      nickname TEXT, 
      ip_adress TEXT
 );

 INSERT INTO ip_logs (ip_id, nickname, ip_adress) 
 VALUES (20, 'test', 'test')

说明表:

1

4

1 回答 1

1

如果将文本列声明为character(1)

create table base1 (
    id int primary key,
    f1 character(1) not null
);
insert into base1 (id, f1) values (1, 'abc');
-- ERROR:  value too long for type character(1)

character(1)只允许一个字符。您需要将数据类型或长度更改为更适合您需要的内容:

alter table base1 alter column f1 type text;
insert into base1 (id, f1) values (1, 'abc');
-- 1 rows affected

DB Fiddle 上的演示

于 2020-12-21T22:16:34.030 回答