我在 CREATE 语句中有以下约束:
UNIQUE (`field_name`)
这些删除约束的命令在 MySQL 中有效,但在 H2 中无效:
DROP INDEX `field_name` ON `table_name`;
ALTER TABLE `table_name` DROP INDEX `field_name`;
我需要一个在 MySQL 和 H2 中都可以工作的命令(MySQL 用于真实环境,H2 用于单元测试)
最佳答案
找到以下解决方法:删除列会删除约束,因此:
ALTER TABLE `table_name` ADD COLUMN `tmp_code` VARCHAR(50) NOT NULL DEFAULT 'TMP';
UPDATE `table_name`
SET `tmp_code` = `field_name`;
ALTER TABLE `table_name` DROP COLUMN `field_name`;
ALTER TABLE `table_name` ADD COLUMN `field_name` VARCHAR(50) NOT NULL;
UPDATE `table_name`
SET `field_name` = `tmp_code`;
ALTER TABLE `table_name` DROP COLUMN `tmp_code`;
关于mysql - 在 MySQL 和 H2 中删除唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882162/