首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL5.5删除主键

MySQL5.5删除主键
EN

Stack Overflow用户
提问于 2012-02-11 18:49:25
回答 4查看 9.9K关注 0票数 4

我正在将我的quartz.net版本从1.0.3升级到2.0.2 --数据库模式有一个迁移脚本,它是为MSSQL编写的,我正在尝试编写它的MYSQL版本。

但是,我还没有能够删除主键(我需要这样做)。

脚本的原始MSSQL版本:

代码语言:javascript
复制
ALTER TABLE BLOB_TRIGGERS DROP CONSTRAINT BLOB_TRIGGERS_PKEY;
ALTER TABLE BLOB_TRIGGERS DROP CONSTRAINT BLOB_TRIGGERS_TRIGGER_NAME_FKEY;
ALTER TABLE SIMPLE_TRIGGERS DROP CONSTRAINT PK_SIMPLE_TRIGGERS;
ALTER TABLE SIMPLE_TRIGGERS DROP CONSTRAINT FK_SIMPLE_TRIGGERS_TRIGGERS;
ALTER TABLE CRON_TRIGGERS DROP CONSTRAINT PK_CRON_TRIGGERS;
ALTER TABLE CRON_TRIGGERS DROP CONSTRAINT FK_CRON_TRIGGERS_TRIGGERS;
ALTER TABLE TRIGGERS DROP CONSTRAINT PK_TRIGGERS;
ALTER TABLE TRIGGERS DROP CONSTRAINT FK_TRIGGERS_JOB_DETAILS;
ALTER TABLE JOB_DETAILS DROP CONSTRAINT PK_JOB_DETAILS;

为了简单起见,我尝试了这里的第一个语句

代码语言:javascript
复制
ALTER TABLE BLOB_TRIGGERS DROP CONSTRAINT BLOB_TRIGGERS_PKEY;

以下是我所做的尝试和结果:

  • ALTER BLOB_TRIGGERS删除主键;

错误1025 -重命名为“.\quartz_local\BLOB_TRIGGERS”(errno: 150)

  • ALTER BLOB_TRIGGERS删除索引“主”;

Err 1064 -您的SQL语法出现了错误;请检查与MySQL服务器版本对应的手册,以便在第1行使用接近“主”的正确语法。

PRIMARY;

  • ALTER BLOB_TRIGGERS DROP索引

错误1025 -重命名为“.\quartz_local\BLOB_TRIGGERS”(errno: 150)

  • ALTER BLOB_TRIGGERS删除主键;

错误1025 -重命名为“.\quartz_local\BLOB_TRIGGERS”(errno: 150)

我的Mysql版本是5.5.16

编辑:检查索引:

EDIT2:外键可按要求:

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-11 19:00:53

(errno: 150)是赠品:这意味着外键定义问题。我怀疑其他表有一个外键约束,这取决于这个PK,所以您需要先删除它,然后再重新构建它。

编辑:与您发布的图片,这变得更清楚:

从BLOBS_TRIGGERS到触发器的FK是由PK组成的。所以如果你放下PK,反差就会变老。您需要删除并在以后重新创建约束。

票数 4
EN

Stack Overflow用户

发布于 2012-02-11 19:07:17

经过简短的谷歌搜索,我很确定错误信息是有点误导。似乎有很多ALTER语句可能会导致错误消息。

我会检查一下这个表是否有外键引用。

票数 1
EN

Stack Overflow用户

发布于 2016-04-26 03:34:16

我也有同样的问题。删除表中的外键没有帮助。没有其他表引用具有我试图删除的主键的表。通过使用mysqldump将表导出到ASCII文件,我最终解决了这个问题。然后,我编辑了该文件,将主键更改为我想要的密钥,然后使用mysql命令行接口重新导入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9243016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档