无法重命名表

时间:2016-11-02 08:32:21

标签: java mysql sql jdbctemplate

我有一个奇怪的案例: 它有效:

rename table `test` to `test3`

但这不起作用:

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 个答案:

答案 0 :(得分:0)

您在测试表的列中添加了一个外键,这意味着您需要在重命名之前删除约束,或者可以取消激活外键约束,然后重命名它。

MySQL 尝试:

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

SQL 尝试:

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