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
Code kopieren Der Code lautet wie folgt: <!DOC...
Inhaltsverzeichnis 1. Ersetzen Sie die Apply-Meth...
<br />Dies ist ein Artikel, den ich vor lang...
In diesem Artikel wird der spezifische JavaScript...
1. Hintergrund Sysbench ist ein Stresstest-Tool, ...
In diesem Artikelbeispiel wird der spezifische JS...
Einführung Kürzlich habe ich herausgefunden, dass...
Sprites: In der Vergangenheit war jede Bildressou...
Ergebnisse erzielenImplementierungscode html <...
Dieser Artikel beschreibt die Installation und Ko...
Wenn Sie Eingabe und Bild in dieselbe Zeile setzen...
1. Parallelität Die wichtigste Funktion einer OLT...
Inhaltsverzeichnis Fremdschlüssel So ermitteln Si...
Dieser Artikel beschreibt anhand eines Beispiels ...
Inhaltsverzeichnis 1. Bedingungen für das Versage...