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
Wie lange ist es her, dass ich meine Kolumne aktu...
In diesem Artikelbeispiel wird der spezifische Co...
Das Standardprotokoll von Tomcat verwendet java.u...
Idea importiert ein bestehendes Webprojekt und ve...
Der Dokumentmodus verfügt über die folgenden zwei ...
Installationsskript Ubuntu / CentOS Es scheint ei...
Inhaltsverzeichnis Vorwort 1. Was ist 2. So verwe...
Inhaltsverzeichnis 1. Drei Funktionen der toStrin...
Inhaltsverzeichnis 1. Rendern 2. Daten binden und...
Vorgestern stieß ich in der Produktionsumgebung a...
Inhaltsverzeichnis Einführung in Anaconda 1. Heru...
Oftmals wird nach der Fertigstellung eines Webdes...
Durch die Verwendung von JS im Webdesign können vi...
Dieser Artikel beschreibt anhand eines Beispiels ...
In diesem Artikelbeispiel wird der spezifische Co...