2016-11-02 1 views
0

の名前を変更することはできません、私は奇妙なケースを持っている: それは動作します:がテーブル

rename table `test` to `test3` 

が、これは動作しません(errnoの名前の変更に

rename table `test` to `test1` 

エラー:150 - 外部キー制約間違っている )

更新日:

私が設定:

SET FOREIGN_KEY_CHECKS=0; 

を私は外部キー

enter image description here

CREATE TABLE `test` (`agglomeration_id` int(11) NOT NULL, `carpark_id` int(11) NOT NULL, `numer_urzadzenia` char(3) NOT NULL, 
         `payments_zone` char(1) DEFAULT NULL, `status` tinyint(1) DEFAULT NULL, `time_stamp` bigint(20) DEFAULT NULL, 
         `resource_uri` char(200) DEFAULT NULL, `test` int(1) NOT NULL, PRIMARY KEY (`test`)) 
    ENGINE=InnoDB DEFAULT CHARSET=utf8 
+1

は、テーブルには、 'TEST1' という名前の外部キー制約を持っていますか? –

+0

この表に関連する外部キーを追加してください – rbr94

答えて

0

を持っていないあなたは、テストテーブルの列への外部キーを追加したので、それはあなたのことを意味し名前を変更する前に制約を削除する必要があります。または、外部キー制約を無効にした後に名前を変更することができます。 SQL試し用

SET FOREIGN_KEY_CHECKS=0; --> Temporary disables foreign key constraints 

MySQLの試し用

EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all" --> Disable foreign key constraints 
+0

正確なクエリは私のMySQLで機能しました。私は引用符なしでテーブル名を書いた。 –

+0

私はテーブルを作成して名前を変更するというクエリについて話しています。 –

+1

SELECT DISTINCT(constraint_name) FROM information_schema.table_constraints WHERE constraint_schema = 'test1' ORDER BY constraint_name ASC; –