hsqldb数据异常:字符串数据,语句中的右截断

时间:2017-06-01 06:33:23

标签: sql database primary-key hsqldb

电子邮件表是使用以下命令创建的,目前它有大约15000条记录。

Create table emails (id INTEGER, accountid INTEGER, subject varchar(4000), 
sender varchar(100), sentDate TIMESTAMP, status varchar(10))

现在我正在尝试在此表上添加主键。为此我正在执行

ALTER TABLE emails ADD PRIMARY KEY (ID)

但是这个动作导致了

data exception: string data, right truncation in statement [ALTER TABLE emails ADD 
PRIMARY KEY (ID)]

可能是什么原因?

1 个答案:

答案 0 :(得分:2)

原因是在某些行中,其中一个VARCHAR列包含的数据长于列的声明大小。

您需要使用SELECT来查找最长的字符串,并在必要时使用较长的列定义更改表定义。例如:

SELECT MAX (CHAR_LENGTH(status)) FROM emails

ALTER TABLE emails ALTER COLUMN status SET DATA TYPE VARCHAR(20)