diff options
Diffstat (limited to 'Source/TableSource.m')
-rw-r--r-- | Source/TableSource.m | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/Source/TableSource.m b/Source/TableSource.m index f704dcec..6dd3f7fb 100644 --- a/Source/TableSource.m +++ b/Source/TableSource.m @@ -25,6 +25,7 @@ #import "TableSource.h" #import "TableDocument.h" +#import "SPTableInfo.h" #import "TablesList.h" #import "SPTableData.h" #import "SPSQLParser.h" @@ -941,8 +942,9 @@ fetches the result as an array with a dictionary for each row in it // Reset AUTO_INCREMENT if ([menuItem action] == @selector(resetAutoIncrement:)) { - return NO; - return ([indexView numberOfSelectedRows] == 1 ); + return ([indexView numberOfSelectedRows] == 1 + && [[indexes objectAtIndex:[indexView selectedRow]] objectForKey:@"Key_name"] + && [[[indexes objectAtIndex:[indexView selectedRow]] objectForKey:@"Key_name"] isEqualToString:@"PRIMARY"]); } return YES; @@ -1010,7 +1012,20 @@ fetches the result as an array with a dictionary for each row in it } else if ([contextInfo isEqualToString:@"resetAutoIncrement"]) { if (returnCode == NSAlertDefaultReturn) { - // ALTER TABLE tbl_name AUTO_INCREMENT = N + + [mySQLConnection queryString:[NSString stringWithFormat:@"ALTER TABLE %@ AUTO_INCREMENT = %@", [selectedTable backtickQuotedString], [[resetAutoIncrementValue stringValue] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]]; + + if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) { + SPBeginAlertSheet(NSLocalizedString(@"Error", @"error"), + NSLocalizedString(@"OK", @"OK button"), + nil, nil, [NSApp mainWindow], nil, nil, nil, nil, + [NSString stringWithFormat:NSLocalizedString(@"An error occurred while trying to reset AUTO_INCREMENT of table '%@'.\n\nMySQL said: %@", @"error resetting auto_increment informative message"), selectedTable, [mySQLConnection getLastErrorMessage]]); + } else { + [tableDataInstance resetAllData]; + [tablesListInstance setStatusRequiresReload:YES]; + [self loadTable:selectedTable]; + [tableInfoInstance tableChanged:nil]; + } } } else |