Description:
A view that has not been changed in any way is continually marked as needing an update in the synchronization wizard.
How to repeat:
1) CREATE DATABASE test;
2) In Workbench, create table `table1`. Leave everything as default.
3) Synchronize. Code produced is:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
CREATE TABLE IF NOT EXISTS `test`.`table1` (
`table1_id` INT(11) NOT NULL ,
PRIMARY KEY (`table1_id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_swedish_ci;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
4) In Workbench add a view `view1` as follows:
CREATE VIEW `test`.`view1` AS
SELECT table1_id FROM table1 WHERE table1_id > 100;
5) Synchronize. Code produced is:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
-- -----------------------------------------------------
-- Placeholder table for view `test`.`view1`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `test`.`view1` (`table1_id` INT);
USE `test`;
-- -----------------------------------------------------
-- View `test`.`view1`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `test`.`view1`;
USE `test`;
CREATE OR REPLACE VIEW `test`.`view1` AS
SELECT table1_id FROM table1 WHERE table1_id > 100;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
At every sync after that, view1 will be marked as having changes and the same code will be produced and executed each time.