@@ -137,6 +137,11 @@ def _trigger_column_copies(cols):
137
137
yield f"`{ c } ` = NEW.`{ c } `"
138
138
139
139
140
+ def _make_trigger_name (name ):
141
+ """ Helper that enforces the trigger must be <= 64 chars """
142
+ return name [:64 ]
143
+
144
+
140
145
def _generate_sql_copy_commands (
141
146
existing_table , map_data , columns , new_table , alter_commands_iter
142
147
):
@@ -175,7 +180,11 @@ def _generate_sql_copy_commands(
175
180
176
181
cols = set (columns )
177
182
178
- yield f"CREATE OR REPLACE TRIGGER copy_inserts_from_{ existing_table .name } _to_{ new_table .name } "
183
+ inserts_trigger_name = _make_trigger_name (
184
+ f"copy_inserts_from_{ existing_table .name } _to_{ new_table .name } "
185
+ )
186
+
187
+ yield f"CREATE OR REPLACE TRIGGER { inserts_trigger_name } "
179
188
yield f"\t AFTER INSERT ON { existing_table .name } FOR EACH ROW"
180
189
yield f"\t \t INSERT INTO { new_table .name } SET"
181
190
@@ -192,7 +201,11 @@ def _generate_sql_copy_commands(
192
201
log .info ("No columns to copy, so no UPDATE trigger being constructed." )
193
202
return
194
203
195
- yield f"CREATE OR REPLACE TRIGGER copy_updates_from_{ existing_table .name } _to_{ new_table .name } "
204
+ updates_trigger_name = _make_trigger_name (
205
+ f"copy_updates_from_{ existing_table .name } _to_{ new_table .name } "
206
+ )
207
+
208
+ yield f"CREATE OR REPLACE TRIGGER { updates_trigger_name } "
196
209
yield f"\t AFTER UPDATE ON { existing_table .name } FOR EACH ROW"
197
210
yield f"\t \t UPDATE { new_table .name } SET"
198
211
0 commit comments