我已经与每月10 of的新数据与MySQL数据库计费。计费有生产版和开发版。
程序员创建补丁,并在更新时逐个应用每个补丁。这不是最好的DB修补方式,但目前我们对此无能为力。
我们有像这样的查询
ALTER TABLE `Customer` ADD FOREIGN KEY ( `contract_id` ) REFERENCES `Document` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ;我发现,每次使用此查询修补程序时,都会在表之间创建引用。当表中有100,000,000条记录时,速度很慢,而且是错误的。
我能做些什么来阻止这个查询的第二次执行吗?可以给出一些名称以供参考&
发布于 2013-12-16 20:46:44
您可以使用此样式:
IF NOT EXISTS (SELECT NULL FROM information_schema.TABLE_CONSTRAINTS WHERE
CONSTRAINT_SCHEMA = DATABASE() AND
CONSTRAINT_NAME = 'contract_document' AND
CONSTRAINT_TYPE = 'FOREIGN KEY') THEN
ALTER TABLE `Customer` ADD CONSTRAINT `contract_document`
FOREIGN KEY (`contract_id`)
REFERENCES `Document` (`id`);
END IFhttps://stackoverflow.com/questions/20611237
复制相似问题