FremdschlüsselAbfrage, bei welchen Tabellen der Primärschlüssel einer Tabelle der Fremdschlüssel istWÄHLEN TABELLE_NAME, SPALTENNAME, Einschränkungsname, REFERENZIERTER TABELLENNAME, REFERENCED_COLUMN_NAME AUS INFORMATION_SCHEMA.KEY_COLUMN_USAGE WO TABLE_SCHEMA = "meinDatenbankname" AND REFERENCED_TABLE_NAME = 'Tabellenname'; Exportieren aller FremdschlüsselanweisungenWÄHLEN CONCAT('ALTER TABLE', TABELLENNAME, 'ADD CONSTRAINT', CONSTRAINT_NAME, 'FREMDER SCHLÜSSEL (', SPALTENNAME, ') REFERENZEN ', REFERENZIERTER TABELLENNAME, '(', REFERENZIERTER SPALTENNAME, ') ON DELETE CASCADE ON UPDATE CASCADE;') AUS INFORMATION_SCHEMA.KEY_COLUMN_USAGE WO TABLE_SCHEMA = "meinDatenbankname" UND REFERENCED_TABLE_NAME IST NICHT NULL; Löschen Sie alle FremdschlüsselanweisungenWÄHLEN CONCAT('ALTER TABLE', TABELLENNAME, 'DROP FOREIGN KEY', CONSTRAINT_NAME, ';') AUS INFORMATION_SCHEMA.KEY_COLUMN_USAGE WO TABLE_SCHEMA = "meinDatenbankname" UND REFERENCED_TABLE_NAME IST NICHT NULL; Automatische InkrementierungExportieren Sie die Anweisung zum Erstellen eines Auto-Increment-FeldsWÄHLEN CONCAT( 'ALTER TABLE `', TABLE_NAME, '` ', 'MODIFY COLUMN `', COLUMN_NAME, '` ', UPPER( COLUMN_TYPE ), ' NOT NULL AUTO_INCREMENT COMMENT "',COLUMN_COMMENT,'";' ) als 'ADD_AUTO_INCREMENT' AUS information_schema.SPALTEN WO TABLE_SCHEMA = "meinDatenbankname" UND EXTRA = UPPER( 'AUTO_INCREMENT' ) BESTELLEN BIS TABELLENNAME ASC; Erstellen und Löschen aller Auto-Increment-FelderWÄHLEN CONCAT( 'ALTER TABLE `', TABLE_NAME, '` ', 'MODIFY COLUMN `', COLUMN_NAME, '` ', UPPER( COLUMN_TYPE ), ' NOT NULL;' ) als 'DELETE_AUTO_INCREMENT' AUS information_schema.SPALTEN WO TABLE_SCHEMA = "meinDatenbankname" UND EXTRA = UPPER( 'AUTO_INCREMENT' ) BESTELLEN BIS TABELLENNAME ASC; IndexAlle Indizes exportierenWÄHLEN KONKAT( 'ALTER TABLE `', TABELLE_NAME, '` ', 'HINZUFÜGEN ', WENN ( NON_UNIQUE = 1, FALL UPPER( INDEX_TYPE ) WENN 'VOLLTEXT' DANN 'VOLLSTÄNDIGER TEXTINDEX' WENN 'RÄUMLICH', DANN 'SPATIAL INDEX' ELSE CONCAT( 'INDEX `', INDEX_NAME, '` USING ', INDEX_TYPE ) ENDE, WENN ( UPPER( INDEX_NAME ) = 'PRIMARY', CONCAT( 'PRIMÄRSCHLÜSSEL VERWENDEN ', INDEX_TYPE ), CONCAT( 'EINDEUTIGER INDEX `', INDEX_NAME, '` VERWENDUNG ', INDEX_TYP ))), CONCAT( '(`', SPALTENNAME, '`)' ), ';' ) AS 'ADD_ALL_INDEX' AUS information_schema.STATISTIK WO TABLE_SCHEMA = "meinDatenbankname" BESTELLEN BIS TABELLE_NAME ASC, INDEX_NAME ASC; Alle Indizes löschenWÄHLEN CONCAT( 'ALTER TABLE `', TABLE_NAME, '` ', CONCAT( 'DROP ', WENN (UPPER( INDEX_NAME ) = 'PRIMARY', 'PRIMARY KEY', CONCAT( 'INDEX `', INDEX_NAME, '`' ))), ';' ) AS 'DELETE_ALL_INDEX' AUS information_schema.STATISTIK WO TABLE_SCHEMA = "meinDatenbankname" BESTELLEN BIS TABELLENNAME ASC; DatenzusammenführungBeim Migrieren und Zusammenführen von Daten ist es schwieriger, dass die Primärschlüssel verschiedener Datenbanken wiederholt werden, sodass wir die Primärschlüsselwerte stapelweise ändern müssen. Um Duplikate zu vermeiden, können wir die Autoinkrementnummer in eine Zeichenfolge ändern Die Schritte sind grundsätzlich wie folgt
Seien Sie vorsichtig beim Ändern von Primärschlüsselwerten
Zum Beispiel Löschen von Selbstbeschränkungen ALTER TABLE `t_director` DROP FOREIGN KEY `fk_directorpid`; Wert ändern Aktualisiere t_director, setze directorid=directorid+100000000; Aktualisiere t_director, setze directorid=CONV(directorid,10,36); aktualisiere t_director, setze directorpid=directorpid+100000000, wobei directorpid nicht null ist; Aktualisiere t_director, setze directorpid=CONV(directorpid,10,36), wobei directorpid nicht null ist; Hinzufügen von Selbstbeschränkungen ALTER TABLE t_director ADD CONSTRAINT fk_directorpid FOREIGN KEY (directorpid) REFERENCES t_director(director-id) ON DELETE CASCADE ON UPDATE CASCADE; Beachten
Oben sind die Einzelheiten der Beispielanweisungen für Indizes und Einschränkungen in MySQL aufgeführt. Weitere Informationen zu MySQL-Indizes und -Einschränkungen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: HTML-Tabellen-Tag-Tutorial (35): spaltenübergreifendes Attribut COLSPAN
>>: Docker ändert die Konfigurationsinformationen eines nicht gestarteten Containers
Inhaltsverzeichnis 1. Datenbank USE auswählen 2. ...
Die Standarddatenbank von CentOS7 ist MariaDB, ab...
Ubuntu ist ein kostenloses und quelloffenes Deskt...
Inhaltsverzeichnis Erstellen eines SSL-Zertifikat...
In diesem Artikel wird das kostenlose MySQL-Insta...
Sehen Sie zuerst den Effekt Implementierungscode ...
Wie wir alle wissen, gibt es in Computern zwei Art...
Möglicherweise sehen Sie häufig den folgenden Eff...
Verwenden Sie vite, um ein vue3-Projekt zu erstel...
In diesem Artikel erfahren Sie mehr über einen pr...
In den vorherigen Artikeln wurde erläutert, wie S...
Da die Verwendung von group by in MySQL immer zu ...
Inhaltsverzeichnis Hintergrund So ermitteln Sie, ...
Dieser Artikel veranschaulicht anhand von Beispie...
Inhaltsverzeichnis 1. Einführung in Sysbench #Pro...