我正在使用以下语句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。