【发布时间】:2013-08-25 12:48:22
【问题描述】:
我正在使用以下语句 ALTER TABLE my_tbl ADD PRIMARY KEY (id ); 向现有 MySQL 表添加主键。作为回复,我收到了错误:
错误 156:表 'db_name.my_tbl#1' 已存在。
我检查了该表并没有重复的 id 条目,如果我执行DROP TABLE my_tbl#1 之类的操作,则删除原始表 (my_tbl)。有趣的是,my_tbl 是由 Create Table my_tbl SELECT id, ... FROM tmp_tbl 创建的(其中 tmp_tbl 是一个临时表)。
有人知道这里发生了什么吗?
更新:这里似乎存在某种孤儿表情况。我尝试了以下答案中的建议,但就我而言,它们并没有解决问题。我终于使用了一种解决方法:我创建了一个具有不同名称的表(例如 my_tbl_new),将信息复制到该表并添加主键。然后我删除了原始表并将新表重命名为 my_tbl。
【问题讨论】:
标签: mysql