电子邮件表是使用以下命令创建的,目前它有大约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)]
可能是什么原因?
答案 0 :(得分:2)
原因是在某些行中,其中一个VARCHAR列包含的数据长于列的声明大小。
您需要使用SELECT来查找最长的字符串,并在必要时使用较长的列定义更改表定义。例如:
SELECT MAX (CHAR_LENGTH(status)) FROM emails
ALTER TABLE emails ALTER COLUMN status SET DATA TYPE VARCHAR(20)