在向表中添加新列时修复表时#1034-137

时间:2014-07-10 18:24:54

标签: mysql sql phpmyadmin

我在Cpanel服务器的数据库中有一个表,其中当前有17列,其中一列是自动递增字段(这是主键)。 目前在该表中我有600k行。 我想在表格中添加一个新列,但我收到以下错误

  修复表时

1034-137

我正在使用Alter命令添加列

ALter table 'tablename' add 'columnname' Varchar(200) NOT NULL

请帮我解决如何将列添加到现有表格

2 个答案:

答案 0 :(得分:1)

由于新列不允许NULL值,因此您需要为列指定默认值。更改表时,将使用新列的默认值填充表中的所有现有行。

例如,要将默认值设置为空字符串,可以使用此语句。

alter table 'tablename' add 'columnname' Varchar(200) NOT NULL DEFAULT ''

以下是使用DEFAULT的一些文档。

您也可以在更改表后删除DEFAULT约束,以便在尝试向该列中插入NULL值时,将来对表的插入将失败,

答案 1 :(得分:0)

在研究错误后,您的表上的索引似乎可能存在问题。哪些表的索引不是您的主键?

在phpmyadmin中选择你的表,然后在工具栏上打开Operations。

在右侧的“表维护”下,单击检查表链接以查明是否有任何错误。

您可能需要进行一些重建索引来纠正错误。