一尘不染

MYSQL 5.5删除主键

sql

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

但是,我无法删除主键(需要这样做)。

MSSQL的原始脚本版本:

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;

为了简单起见,我正在尝试第一个声明

ALTER TABLE BLOB_TRIGGERS DROP CONSTRAINT BLOB_TRIGGERS_PKEY;

这是我尝试过的结果:

  • ALTER TABLE BLOB_TRIGGERS DROP PRIMARY KEY;

[Err] 1025-将“。\ quartz_local#sql-df8_9”重命名为“。\ quartz_local \
BLOB_TRIGGERS”时出错(错误号:150)

  • ALTER TABLE BLOB_TRIGGERS DROP INDEX’PRIMARY’;

[Err] 1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的“ PRIMARY”附近使用正确的语法

  • 修改表BLOB_TRIGGERS DROP INDEX PRIMARY;

[Err] 1025-将“。\ quartz_local#sql-df8_9”重命名为“。\ quartz_local \
BLOB_TRIGGERS”时出错(错误号:150)

  • 更改表BLOB_TRIGGERS删除主键;

[Err] 1025-将“。\ quartz_local#sql-df8_9”重命名为“。\ quartz_local \
BLOB_TRIGGERS”时出错(错误号:150)

我的Mysql版本是5.5.16


阅读 145

收藏
2021-05-23

共1个答案

一尘不染

(errno: 150)是赠品:这意味着外键定义问题。我怀疑其他表具有依赖于此PK的外键约束,因此您需要先删除该表,然后再重建它。

编辑: 使用您发布的图像,这变得更加清晰:

从BLOBS_TRIGGERS到TRIGGERS的FK由PK组成。因此,如果您放弃PK,则约束将变得陈旧。您需要删除并稍后重新创建约束。

2021-05-23