簡體   English   中英

MYSQL 5.5刪除主鍵

[英]MYSQL 5.5 Drop Primary Key

我正在將我的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;

[錯誤] 1025 - 將'。\\ quartz_local#sql-df8_9'重命名為'。\\ quartz_local \\ BLOB_TRIGGERS'時出錯(錯誤號:150)

  • ALTER TABLE BLOB_TRIGGERS DROP INDEX'PRIMARY';

[錯誤] 1064 - 您的SQL語法有錯誤; 檢查與MySQL服務器版本對應的手冊,以便在第1行的''PRIMARY'附近使用正確的語法

  • ALTER TABLE BLOB_TRIGGERS DROP INDEX PRIMARY ;

[錯誤] 1025 - 將'。\\ quartz_local#sql-df8_9'重命名為'。\\ quartz_local \\ BLOB_TRIGGERS'時出錯(錯誤號:150)

  • ALTER TABLE BLOB_TRIGGERS DROP PRIMARY KEY;

[錯誤] 1025 - 將'。\\ quartz_local#sql-df8_9'重命名為'。\\ quartz_local \\ BLOB_TRIGGERS'時出錯(錯誤號:150)

我的Mysql版本是5.5.16

編輯:檢查索引: MYSQL顯示索引結果

EDIT2:請求外鍵: 創建表sql

(errno: 150)是贈品:這意味着外鍵定義問題。 我懷疑某些其他表具有依賴於此PK的外鍵約束,因此您需要先刪除它並稍后重建它。

編輯:使用您發布的圖像,這變得更加清晰:

從BLOBS_TRIGGERS到TRIGGERS的FK由PK組成。 因此,如果你放棄PK,那么約束就會變得陳舊。 您需要刪除並稍后重新創建約束。

經過簡短的谷歌搜索,我很確定錯誤信息有點誤導。 似乎有很多ALTER TABLE語句可能導致該錯誤消息。

我要檢查是否有對該表的外鍵引用。

我有同樣的問題。 刪除表中的外鍵沒有幫助。 沒有其他表引用具有我試圖刪除的主鍵的表。 我終於通過使用mysqldump將表導出到ASCII文件來解決問題。 然后我編輯了文件以將主鍵更改為我想要的主鍵,然后使用mysql命令行界面重新導入。

ALTER TABLE tablename DROP PRIMARY KEY;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM