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
1.1 Download des binären Installationspakets wget...
In diesem Artikelbeispiel wird der spezifische Co...
Ich habe zufällig ein tolles Tutorial zum Thema k...
In diesem Artikel wird der spezifische Code des j...
Inhaltsverzeichnis Überblick Globale Hook-Funktio...
Vor einiger Zeit musste das Projekt die Funktion ...
Methode 1: Bitte fügen Sie den folgenden Code nach...
In diesem Artikel wird der Unterschied zwischen P...
Wie erreicht man Internationalisierung in React? ...
Dieser Artikel veranschaulicht anhand von Beispie...
Inhaltsverzeichnis Vorwort Rendern setTable-Kompo...
Inhaltsverzeichnis JVM-Klassenlader Tomcat-Klasse...
Zum Ausführen von Docker sind Root-Rechte erforde...
Legen Sie ein Hintergrundbild für die Tabelle fes...
1. Was nützt eine langsame Abfrage? Es kann alle ...