Index: src/wp-admin/includes/upgrade.php
===================================================================
--- src/wp-admin/includes/upgrade.php	(revision 37538)
+++ src/wp-admin/includes/upgrade.php	(working copy)
@@ -2201,14 +2201,14 @@
 				case 'unique':
 				case 'key':
 					$validfield = false;
-					$indices[] = trim(trim($fld), ", \n");
+					$indices[] = trim( trim( str_replace( '`', '', $fld ) ), ", \n" );
 					break;
 			}
 			$fld = trim( $fld );
 
 			// If it's a valid field, add it to the field array.
 			if ( $validfield ) {
-				$cfields[ $fieldname_lowercased ] = trim( $fld, ", \n" );
+				$cfields[ $fieldname_lowercased ] = trim( str_replace( '`', '', $fld ), ", \n" );
 			}
 		}
 
Index: tests/phpunit/tests/dbdelta.php
===================================================================
--- tests/phpunit/tests/dbdelta.php	(revision 37538)
+++ tests/phpunit/tests/dbdelta.php	(working copy)
@@ -488,4 +488,26 @@
 
 		$this->assertEmpty( $updates );
 	}
+
+	/**
+	 * @ticket 20263
+	 */
+	function test_query_with_backticks_does_not_cause_a_query_to_alter_all_columns_and_indexes_to_run_even_if_none_have_changed() {
+		global $wpdb;
+
+		$schema = "
+			CREATE TABLE {$wpdb->prefix}dbdelta_test2 (
+				`id` bigint(20) NOT NULL AUTO_INCREMENT,
+				PRIMARY KEY  (`id`)
+			)
+		";
+
+		$wpdb->query( $schema );
+
+		$updates = dbDelta( $schema, false );
+
+		$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}dbdelta_test2" );
+
+		$this->assertEmpty( $updates );
+	}
 }
