我有一个奇怪的案例: 它有效:
rename table `test` to `test3`
但这不起作用:
rename table `test` to `test1`
重命名时出错(错误号:150 - 外键约束不正确 形成的)
更新:
我设置:
SET FOREIGN_KEY_CHECKS=0;
我没有外键
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
答案 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