我使用以下代码通过添加额外的列来修改数据库表:
$componentName = 'is_this_the_first_time_you_have_taken_part_in_or_attended_this_event';
db_add_field('webform_views_data',
$componentName,
array('type' => 'varchar', 'length' => 255, 'not null' => TRUE)
);
但是,我一直收到以下错误:
> PDOException: SQLSTATE[42000]: Syntax error or access violation: 1059
> Identifier name
> 'is_this_the_first_time_you_have_taken_part_in_or_attended_this_event'
> is too long: ALTER TABLE {webform_views_data} ADD
> `is_this_the_first_time_you_have_taken_part_in_or_attended_this_event`
> VARCHAR(255) NULL DEFAULT NULL; Array ( ) in db_add_field() (line 2812
> of /var/www/mysite/includes/database/database.inc).
关于错误消息中明显的长度细节,我想我们都同意'is_this_the_first_time_you_have_taken_part_in_or_attended_this_event'长度不是255个字符。
不确定是什么问题。
答案 0 :(得分:1)
VARCHAR(255)
或255个字符是字段内容的最大字符,但错误指出该字段的名称太长。
也就是说,is_this_the_first_time_you_have_taken_part_in_or_attended_this_event
对于字段名称来说太长了。
有关相关问题,请参阅this answer,并注意根据MySQL documentation字段名称的字符数限制为64个字符。