Aurora MySQL 5.7.12执行ALTER TABLE添加主键报错求助
问题排查与解决
你的错误提示显示SQL语句被截断(仅解析到(d),大概率是执行环境的问题——比如客户端未正确处理多行SQL的分隔,或者语句在传递过程中被截断了。这里给你两个可行的解决办法:
办法1:建表时直接定义主键
这是最稳妥的方式,把主键约束直接写在字段定义里,避免后续ALTER操作的潜在问题:
CREATE TABLE discount ( discount_id varchar(50) not null PRIMARY KEY, discount_name varchar(255), hr_status varchar(50), program_status varchar(50), created_by varchar(50) not null, created_timestamp varchar(20) not null, updated_by varchar(50) not null, updated_timestamp varchar(20) not null );
办法2:修正ALTER语句的执行方式
如果一定要用ALTER语句添加主键:
- 单独执行这条ALTER语句,不要和CREATE TABLE语句放在一起执行(部分客户端对多语句执行的分隔处理存在bug)
- 或者使用MySQL简化版语法(无需手动指定约束名,系统会自动生成):
ALTER TABLE discount ADD PRIMARY KEY (discount_id);
若你必须自定义约束名,确保语句完整无截断,这条语法本身符合MySQL 5.7规范:
ALTER TABLE discount ADD CONSTRAINT discountpkey PRIMARY KEY (discount_id);
内容的提问来源于stack exchange,提问作者sanju
相关产品推荐
相关产品推荐

