diff --git a/go/mysql/schema.go b/go/mysql/schema.go index 1b3f50b31cd..ee3cb880ea2 100644 --- a/go/mysql/schema.go +++ b/go/mysql/schema.go @@ -39,13 +39,13 @@ const ( DetectSchemaChange = ` SELECT DISTINCT table_name FROM ( - SELECT table_name, column_name, ordinal_position, character_set_name, collation_name, data_type, column_key + SELECT table_name COLLATE utf8mb3_bin AS table_name, column_name COLLATE utf8mb3_general_ci AS column_name, ordinal_position, character_set_name COLLATE utf8mb3_general_ci AS character_set_name, collation_name COLLATE utf8mb3_general_ci AS collation_name, data_type COLLATE utf8mb3_bin AS data_type, column_key COLLATE utf8mb3_bin AS column_key FROM information_schema.columns WHERE table_schema = database() UNION ALL - SELECT table_name, column_name, ordinal_position, character_set_name, collation_name, data_type, column_key + SELECT table_name COLLATE utf8mb3_bin AS table_name, column_name COLLATE utf8mb3_general_ci AS column_name, ordinal_position, character_set_name COLLATE utf8mb3_general_ci AS character_set_name, collation_name COLLATE utf8mb3_general_ci AS collation_name, data_type COLLATE utf8mb3_bin AS data_type, column_key COLLATE utf8mb3_bin AS column_key FROM _vt.schemacopy WHERE table_schema = database() ) _inner @@ -110,8 +110,8 @@ order by table_name, ordinal_position` table_name, create_statement) values (database(), :table_name, :create_statement)` - UpdateViewsTable = `update _vt.views - set create_statement = :create_statement + UpdateViewsTable = `update _vt.views + set create_statement = :create_statement where table_schema = database() and table_name = :table_name` DeleteFromViewsTable = `delete from _vt.views where table_schema = database() and table_name in ::table_name` diff --git a/go/vt/sidecardb/schema/schematracker/schemacopy.sql b/go/vt/sidecardb/schema/schematracker/schemacopy.sql index 95cd7c34f3f..4ac032bb88c 100644 --- a/go/vt/sidecardb/schema/schematracker/schemacopy.sql +++ b/go/vt/sidecardb/schema/schematracker/schemacopy.sql @@ -16,13 +16,13 @@ limitations under the License. CREATE TABLE IF NOT EXISTS _vt.schemacopy ( - `table_schema` varchar(64) NOT NULL, - `table_name` varchar(64) NOT NULL, - `column_name` varchar(64) NOT NULL, - `ordinal_position` bigint unsigned NOT NULL, - `character_set_name` varchar(32) DEFAULT NULL, - `collation_name` varchar(32) DEFAULT NULL, - `data_type` varchar(64) NOT NULL, - `column_key` varchar(3) NOT NULL, + `table_schema` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `table_name` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `column_name` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, + `ordinal_position` bigint unsigned NOT NULL, + `character_set_name` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, + `collation_name` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, + `data_type` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `column_key` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, PRIMARY KEY (`table_schema`, `table_name`, `ordinal_position`) -) ENGINE = InnoDB +) ENGINE = InnoDB, CHARACTER SET = utf8mb3