Skip to content

Commit 91ba1d4

Browse files
committed
fix: default name for new constraint too long for MySQL
Refs #2609
1 parent fe64c56 commit 91ba1d4

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

‎source/table_editor.pas‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3126,6 +3126,7 @@ procedure TfrmTableEditor.listForeignKeysNewText(Sender: TBaseVirtualTree;
31263126
RefColumns: TTableColumnList;
31273127
TypesMatch: Boolean;
31283128
RefObj: TDBObject;
3129+
NewConstraintNameBase: String;
31293130
begin
31303131
// Cell text in foreign key list edited
31313132
Key := FForeignKeys[Node.Index];
@@ -3140,7 +3141,8 @@ procedure TfrmTableEditor.listForeignKeysNewText(Sender: TBaseVirtualTree;
31403141
2: begin
31413142
Key.ReferenceTable := NewText;
31423143
if not Key.KeyNameWasCustomized then begin
3143-
Key.KeyName := 'FK_'+editName.Text+'_'+Key.ReferenceTable;
3144+
NewConstraintNameBase := 'FK_' + Copy(editName.Text, 1, 25) + '_' + Copy(Key.ReferenceTable, 1, 25);
3145+
Key.KeyName := NewConstraintNameBase;
31443146
i := 1;
31453147
NameInUse := True;
31463148
while NameInUse do begin
@@ -3150,7 +3152,7 @@ procedure TfrmTableEditor.listForeignKeysNewText(Sender: TBaseVirtualTree;
31503152
end;
31513153
if NameInUse then begin
31523154
Inc(i);
3153-
Key.KeyName := 'FK_'+editName.Text+'_'+Key.ReferenceTable+'_'+IntToStr(i);
3155+
Key.KeyName := NewConstraintNameBase + '_' + IntToStr(i);
31543156
end;
31553157
end;
31563158

0 commit comments

Comments
 (0)