diff --git a/integration_test/config/db_tbl/config.yaml b/integration_test/config/db_tbl/config.yaml index 8001aa7f..8bdd29d0 100644 --- a/integration_test/config/db_tbl/config.yaml +++ b/integration_test/config/db_tbl/config.yaml @@ -84,16 +84,6 @@ data: password: "123456" database: employees_0003 weight: r10w10 - - name: employees_shadow - nodes: - - name: node_shadow - host: arana-mysql - port: 3306 - username: root - password: "123456" - database: employees_shadow - weight: r10w10 - sharding_rule: tables: - name: employees.student @@ -114,13 +104,3 @@ data: tbl_pattern: student_${0000..0031} attributes: sqlMaxLimit: -1 - shadow_rule: - tables: - - name: employees.student - enable: true - group_node: employees_shadow - match_rules: - - operation: [select,insert,update,delete] - match_type: hint - attributes: - - value: "shadow" diff --git a/integration_test/config/shadow/config.yaml b/integration_test/config/shadow/config.yaml index bb440bab..3ea7b560 100644 --- a/integration_test/config/shadow/config.yaml +++ b/integration_test/config/shadow/config.yaml @@ -113,7 +113,17 @@ data: - name: employees.student enable: true match_rules: - - operation: [select, insert, update, delete] + - operation: [insert, select] match_type: hint attributes: - value: "shadow" + - operation: [update] + match_type: value + attributes: + - column: uid + value: 10000 + - operation: [delete] + match_type: regex + attributes: + - column: name + value: "^hanmeimei$" diff --git a/integration_test/scene/shadow/integration_test.go b/integration_test/scene/shadow/integration_test.go index ab5b55ef..ca150269 100644 --- a/integration_test/scene/shadow/integration_test.go +++ b/integration_test/scene/shadow/integration_test.go @@ -79,16 +79,25 @@ func (s *IntegrationSuite) TestShadowScene() { } } - /* - for _, sqlCase := range cases.ExShRegexCases { - for _, sense := range sqlCase.Sense { - if strings.Compare(strings.TrimSpace(sense), "shadow") == 0 { - result, err := tx.Exec(sqlCase.SQL) - assert.NoError(t, err, err) - err = sqlCase.ExpectedResult.CompareRow(result) - assert.NoError(t, err, err) - } + for _, sqlCase := range cases.ExShValueCases { + for _, sense := range sqlCase.Sense { + if strings.Compare(strings.TrimSpace(sense), "shadow") == 0 { + result, err := tx.Exec(sqlCase.SQL) + assert.NoError(t, err, err) + err = sqlCase.ExpectedResult.CompareRow(result) + assert.NoError(t, err, err) } } - */ + } + + for _, sqlCase := range cases.ExShRegexCases { + for _, sense := range sqlCase.Sense { + if strings.Compare(strings.TrimSpace(sense), "shadow") == 0 { + result, err := tx.Exec(sqlCase.SQL) + assert.NoError(t, err, err) + err = sqlCase.ExpectedResult.CompareRow(result) + assert.NoError(t, err, err) + } + } + } } diff --git a/integration_test/scripts/shadow/init.sql b/integration_test/scripts/shadow/init.sql index 6e0c9ddb..b737a6bd 100644 --- a/integration_test/scripts/shadow/init.sql +++ b/integration_test/scripts/shadow/init.sql @@ -40,7 +40,6 @@ -- CREATE DATABASE IF NOT EXISTS employees_0000 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -CREATE DATABASE IF NOT EXISTS employees_shadow CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE employees_0000; diff --git a/integration_test/scripts/shadow/sharding.sql b/integration_test/scripts/shadow/sharding.sql index 40caa0c9..d4b92445 100644 --- a/integration_test/scripts/shadow/sharding.sql +++ b/integration_test/scripts/shadow/sharding.sql @@ -22,6 +22,7 @@ CREATE DATABASE IF NOT EXISTS employees_0003 CHARACTER SET utf8mb4 COLLATE utf8m CREATE DATABASE IF NOT EXISTS employees_0000_r CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +-- employees_0000, student_0000~student_0007 CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0000` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, @@ -36,1143 +37,103 @@ CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0000` PRIMARY KEY (`id`), UNIQUE KEY `uk_uid` (`uid`), KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0001` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0002` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0003` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0004` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0005` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0006` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0007` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0008` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0009` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0010` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0011` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0012` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0013` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0014` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0015` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0016` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0017` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0018` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0019` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0020` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0021` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0022` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0023` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0024` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0025` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0026` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0027` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0028` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0029` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0030` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0031` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0000` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0001` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0002` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0003` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0004` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0005` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0006` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0007` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0000` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0001` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0002` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0003` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0004` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0005` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0006` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0007` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0008` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0009` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0010` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0011` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0012` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0013` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0014` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0015` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0016` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0017` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0018` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0019` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0020` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0021` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0022` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0023` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0024` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0025` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0026` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0027` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0028` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0029` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0030` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `employees_shadow`.`student_0031` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `uid` BIGINT(20) UNSIGNED NOT NULL, - `name` VARCHAR(255) NOT NULL, - `score` DECIMAL(6,2) DEFAULT '0', - `nickname` VARCHAR(255) DEFAULT NULL, - `gender` TINYINT(4) NULL, - `birth_year` SMALLINT(5) UNSIGNED DEFAULT '0', - `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - `modified_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `uk_uid` (`uid`), - KEY `nickname` (`nickname`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0001` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0002` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0003` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0004` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0005` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0006` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`student_0007` LIKE `employees_0000`.`student_0000`; + +-- employees_0001, student_0008~student_0015 +CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0008` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0009` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0010` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0011` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0012` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0013` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0014` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`student_0015` LIKE `employees_0000`.`student_0000`; + +-- employees_0002, student_0016~student_0023 +CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0016` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0017` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0018` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0019` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0020` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0021` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0022` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`student_0023` LIKE `employees_0000`.`student_0000`; + +-- employees_0003, student_0024~student_0031 +CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0024` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0025` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0026` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0027` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0028` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0029` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0030` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`student_0031` LIKE `employees_0000`.`student_0000`; + +-- employees_0000_r, student_0000~student_0007 +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0000` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0001` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0002` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0003` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0004` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0005` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0006` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`student_0007` LIKE `employees_0000`.`student_0000`; + +-- employees_0000, __shadow_student_0000~__shadow_student_0007 +CREATE TABLE IF NOT EXISTS `employees_0000`.`__shadow_student_0000` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`__shadow_student_0001` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`__shadow_student_0002` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`__shadow_student_0003` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`__shadow_student_0004` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`__shadow_student_0005` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`__shadow_student_0006` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000`.`__shadow_student_0007` LIKE `employees_0000`.`student_0000`; + +-- employees_0001, __shadow_student_0008~__shadow_student_0015 +CREATE TABLE IF NOT EXISTS `employees_0001`.`__shadow_student_0008` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`__shadow_student_0009` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`__shadow_student_0010` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`__shadow_student_0011` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`__shadow_student_0012` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`__shadow_student_0013` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`__shadow_student_0014` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0001`.`__shadow_student_0015` LIKE `employees_0000`.`student_0000`; + +-- employees_0002, __shadow_student_0016~__shadow_student_0023 +CREATE TABLE IF NOT EXISTS `employees_0002`.`__shadow_student_0016` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`__shadow_student_0017` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`__shadow_student_0018` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`__shadow_student_0019` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`__shadow_student_0020` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`__shadow_student_0021` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`__shadow_student_0022` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0002`.`__shadow_student_0023` LIKE `employees_0000`.`student_0000`; + +-- employees_0003, __shadow_student_0024~__shadow_student_0031 +CREATE TABLE IF NOT EXISTS `employees_0003`.`__shadow_student_0024` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`__shadow_student_0025` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`__shadow_student_0026` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`__shadow_student_0027` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`__shadow_student_0028` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`__shadow_student_0029` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`__shadow_student_0030` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0003`.`__shadow_student_0031` LIKE `employees_0000`.`student_0000`; + +-- employees_0000_r, __shadow_student_0000~__shadow_student_0007 +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`__shadow_student_0000` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`__shadow_student_0001` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`__shadow_student_0002` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`__shadow_student_0003` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`__shadow_student_0004` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`__shadow_student_0005` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`__shadow_student_0006` LIKE `employees_0000`.`student_0000`; +CREATE TABLE IF NOT EXISTS `employees_0000_r`.`__shadow_student_0007` LIKE `employees_0000`.`student_0000`; INSERT INTO employees_0000.student_0001(id,uid,name,score,nickname,gender,birth_year,created_at,modified_at) VALUES (1, 1, 'arana', 95, 'Awesome Arana', 0, 2021, NOW(), NOW()); diff --git a/integration_test/testcase/casetest.yaml b/integration_test/testcase/casetest.yaml index b902ed30..17cc9589 100644 --- a/integration_test/testcase/casetest.yaml +++ b/integration_test/testcase/casetest.yaml @@ -82,21 +82,14 @@ exec_cases: value: 1 exec_shadow_hint_cases: - - sql: "/*A! shadow(shadow) */ INSERT INTO student(id,uid,score,name,nickname,gender,birth_year) values (1,3,100,'lilei','shadow test',1,1980)" + - sql: "/*A! shadow(shadow) */ INSERT INTO student(id,uid,score,name,nickname,gender,birth_year) values (1,10000,100,'lilei','shadow test',1,1980)" parameters: "1:int" sense: - shadow expected: type: "rowAffect" value: 1 - - sql: "/*A! shadow(shadow) */ UPDATE student SET score = 98 WHERE uid = 3" - parameters: "1:int" - sense: - - shadow - expected: - type: "rowAffect" - value: 1 - - sql: "/*A! shadow(shadow) */ DELETE FROM student WHERE uid = 3" + - sql: "/*A! shadow(shadow) */ SELECT COUNT(1) FROM student WHERE uid = 10000" parameters: "1:int" sense: - shadow @@ -104,22 +97,17 @@ exec_shadow_hint_cases: type: "rowAffect" value: 1 -exec_shadow_regex_cases: - - sql: "INSERT INTO student(id,uid,score,name,nickname,gender,birth_year) values (1,2,100,'hanmeimei','shadow test',1,1981)" - parameters: "1:int" - sense: - - shadow - expected: - type: "rowAffect" - value: 1 - - sql: "UPDATE student SET score = 98 WHERE uid = 2 AND name = 'hanmeimei'" +exec_shadow_value_cases: + - sql: "UPDATE student SET name = 'hanmeimei' WHERE uid = 10000" parameters: "1:int" sense: - shadow expected: type: "rowAffect" value: 1 - - sql: "DELETE FROM student WHERE uid = 2 AND name = 'hanmeimei'" + +exec_shadow_regex_cases: + - sql: "DELETE FROM student WHERE uid = 10000 AND name = 'hanmeimei'" parameters: "1:int" sense: - shadow diff --git a/pkg/runtime/rule/evaluator.go b/pkg/runtime/rule/evaluator.go index 0d175201..49f2598c 100644 --- a/pkg/runtime/rule/evaluator.go +++ b/pkg/runtime/rule/evaluator.go @@ -350,15 +350,33 @@ func mergeShadow(tableName, action string, rule *rule.ShadowRule, first, second k2, ok2 := second.(*KeyedEvaluator) if ok1 { - s1, ok := k1.v.(string) - if ok && k1.op == cmp.Ceq && rule.MatchRegexBy(tableName, action, k1.k, s1) { - return k1, nil + if k1.op == cmp.Ceq { + switch v := k1.v.(type) { + case int8, uint8, int16, uint16, int32, uint32, int, int64, uint, uint64: + s := fmt.Sprintf("%v", v) + if rule.MatchValueBy(tableName, action, k1.k, s) { + return k1, nil + } + case string: + if rule.MatchValueBy(tableName, action, k1.k, v) || rule.MatchRegexBy(tableName, action, k1.k, v) { + return k1, nil + } + } } } if ok2 { - s2, ok := k2.v.(string) - if ok && k2.op == cmp.Ceq && rule.MatchRegexBy(tableName, action, k2.k, s2) { - return k2, nil + if k2.op == cmp.Ceq { + switch v := k2.v.(type) { + case int8, uint8, int16, uint16, int32, uint32, int, int64, uint, uint64: + s := fmt.Sprintf("%v", v) + if rule.MatchValueBy(tableName, action, k2.k, s) { + return k2, nil + } + case string: + if rule.MatchValueBy(tableName, action, k2.k, v) || rule.MatchRegexBy(tableName, action, k2.k, v) { + return k2, nil + } + } } } diff --git a/test/dataset.go b/test/dataset.go index 3b6c05d7..7c978c0a 100644 --- a/test/dataset.go +++ b/test/dataset.go @@ -84,6 +84,7 @@ type ( QueryRowCases []*Case `yaml:"query_row_cases"` ExShHintCases []*Case `yaml:"exec_shadow_hint_cases"` ExShRegexCases []*Case `yaml:"exec_shadow_regex_cases"` + ExShValueCases []*Case `yaml:"exec_shadow_value_cases"` } Case struct {