2016-04-05 10 views
0

show create table USERS; そして私はその結果を得るでしょう。Maria DBにFOREIGN KEYをドロップできません

CREATE TABLE `USERS` (
    `UR_ID` bigint(20) NOT NULL, 
    `DEPT_ID` bigint(20) DEFAULT NULL, 
    `DN_ID` bigint(20) NOT NULL, 
    `CREATED_BY` varchar(45) NOT NULL, 
    `LAST_UPDATED_BY` varchar(45) NOT NULL, 
    `LAST_UPDATED_DT` datetime NOT NULL, 
    `UR_LOGIN_NAME` varchar(255) NOT NULL, 
    `TRANS_ID` bigint(20) DEFAULT NULL, 
    PRIMARY KEY (`UR_ID`), 
    UNIQUE KEY `Uk11` (`UR_LOGIN_NAME`), 
    KEY `SYS_C0018877` (`UR_ID`), 
    KEY `SYS_C0018878` (`DEPT_ID`), 
    KEY `SYS_C0018879` (`DN_ID`), 
    **KEY `SYS_C0018880` (`CREATED_BY`),** 
    KEY `SYS_C0018881` (`LAST_UPDATED_BY`), 
    KEY `SYS_C0018882` (`LAST_UPDATED_DT`), 
    KEY `SYS_C0018883` (`UR_LOGIN_NAME`), 
    CONSTRAINT `fk_USERS_2` FOREIGN KEY (`DN_ID`) REFERENCES `DESIGNATION` (`DN_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 | 

今私は、外部キーCREATED_BYをドロップしたいと私は のALTER TABLE USERS DROP FOREIGN KEY SYS_C0018880を実行します。 ERROR 1025(HY000): './dbname/#sql2-3ea-2c' から './dbname/USERS' の名前変更のエラー(errnoに:152)

また、私は

を使用していましたALTER TABLEユーザーはFOREIGN KEY CREATED_BYを削除します。

しかし、私は再び同じエラーを得た

'./dbname/#sql2-3ea-2c' から './dbname/USERS' の名前変更のエラー(errnoに:152)

してください任意の1つの共有私はどのように私はこの外部キーをドロップすることができます可能であればキーSYS_C0018880CREATED_BY)を共有してください。私はこのキーが外字キーであることを知っていました。

| DN_ID | bigint(20)| NO | MUL | NULL | | | CREATED_BY | varchar(45)| NO | MUL | NULL | | | | LAST_UPDATED_BY | varchar(45)| NO | MUL | NULL | | | | LAST_UPDATED_DT |日時| NO | MUL | NULL |

答えて

1

キー外国ないキー名を使用して、根本的な原因内部のInnoDB辞書に、そのような名前のデータディレクトリおよび/またはテーブル内のファイル(複数可)#sql2-3ea-2C *があります。それはUSERSテーブルのALTER操作を防ぎます。指示regのための '孤立したinnodbテーブルの削除'のためにgoogleを検索してください。その

1

ALTER TABLE USERS DROP KEY SYS_C0018880 
+0

私はドロップしたい** KEY 'SYS_C0018880'(' CREATED_BY')、**キー、私は外のキー "DN_ID"をドロップしたくない –

+0

私のために働いていない –

関連する問題