MySQL, wie man eine Tabelle dupliziert – schnelle Tipps

WBOY
Freigeben: 2024-08-21 21:03:15
Original
842 Leute haben es durchsucht

Kürzlich musste ich mich mit einigen Einschränkungen meines Datenbankanbieters auseinandersetzen, der das Umbenennen von Tabellen nicht unterstützt. Also musste ich eine Tabelle manuell duplizieren.

Die Datenbank meiner SaaS-Plattform wird auf Planetscale gehostet. Das Unternehmen stellt eine MySQL-kompatible serverlose Datenbank bereit. Dank seiner serverlosen Natur können Sie die Leistung von horizontalem Sharding, nicht blockierenden Schemaänderungen und vielen weiteren leistungsstarken Datenbankfunktionen nutzen, ohne den Aufwand für deren Implementierung auf sich nehmen zu müssen. Und eine tolle Entwicklererfahrung.

Aus einer anderen Perspektive müssen Sie sich mit einigen Einschränkungen hinsichtlich Schemaänderungen auseinandersetzen. Diese Einschränkungen sind erforderlich, um die Konsistenz in einer Sharding-Umgebung zu gewährleisten.

Sie haben große Fortschritte gemacht, seit ich Kunde wurde (vor fast zwei Jahren), wie zum Beispiel die Unterstützung für Fremdschlüsseleinschränkungen: https://planetscale.com/docs/concepts/foreign-key-constraints

Benennen Sie eine Tabelle um

Inspector ist eine Laravel-Anwendung. Mit den Laravel-Migrationen könnte ich die Umbenennungsfunktion verwenden, um einfach den Namen einer Tabelle zu ändern:

Schema::rename('from', 'to');
Nach dem Login kopieren

Planetscale unterstützt das Umbenennen von Tabellen nicht nativ. Also musste ich einen Workaround finden, um die Aufgabe zu bewältigen.

Um ehrlich zu sein, ist das Umbenennen einer Tabelle ein recht seltener Vorgang. Bei mir lag es an einer Namensüberschneidung zwischen den Entitäten „Projekte“ und „Anwendungen“. Ich musste Projekte umbenennen -> Anwendungen.

So duplizieren Sie eine Tabelle in MySQL

Es gibt zwei Möglichkeiten, eine Tabelle in MySQL zu duplizieren.

Duplizieren Sie die Tabellenstruktur

Sie können nur die Tabellenstruktur (Spalten, Schlüssel, Indizes usw.) ohne Daten duplizieren, indem Sie CREATE TABLE … LIKE:
verwenden

CREATE TABLE applications LIKE projects;
Nach dem Login kopieren

Das Ergebnis ist die Erstellung der Anwendungstabelle mit genau der gleichen Struktur wie die ursprüngliche Projekttabelle, jedoch OHNE Daten.

Um auch Daten zu importieren, können Sie eine zweite Anweisung als INSERT INTO … SELECT:
ausführen

INSERT INTO applications SELECT * FROM projects;
Nach dem Login kopieren

Achten Sie darauf, diese Anweisung auf großen Tabellen auszuführen, da sie viel Zeit und Serverressourcen in Anspruch nehmen kann.

Nur Spaltendefinition duplizieren

Die zweite Option besteht darin, nur Spaltendefinitionen zu duplizieren und Daten in einer Anweisung mit CREATE TABLE … AS SELECT:
zu importieren

CREATE TABLE applications AS SELECT * FROM projects;
Nach dem Login kopieren

Die neue Anwendungstabelle erbt nur die grundlegenden Spaltendefinitionen von der Projekttabelle. Es werden keine Fremdschlüsseleinschränkungen, Indizes und Auto_Inkrement-Definitionen dupliziert.

Diese Option kann nützlich sein, wenn Sie die Namen von Indizes und Schlüsseln haben, die sich auf den Tabellennamen beziehen. Wenn Sie den Namen der Tabelle ändern, müssen Sie die Namen der Einschränkungen ersetzen. Importieren Sie sie lieber gar nicht erst und machen Sie alles noch einmal.

Ressourcen

Datenbanken sind für Entwickler in jeder Phase immer ein heißes Thema. Weitere technische Ressourcen finden Sie im Blog. Hier sind die beliebtesten Artikel zum Thema:

  • Gelöst – Verletzung der Integritätsbeschränkung
  • Sparen Sie 1 Million Anfragen mit Laravel Eager Loading
  • So skalieren Sie eine SQL-Datenbank
  • Gelöst – Wartezeitüberschreitung der MySQL-Sperre bei Verwendung von Laravel-Warteschlangen und -Jobs

Neu bei Inspector? Überwachen Sie Ihre Bewerbung kostenlos

Inspector ist ein Tool zur Codeausführungsüberwachung, das speziell für Softwareentwickler entwickelt wurde. Sie müssen nichts auf Serverebene installieren, installieren Sie einfach dasComposer-Paketund schon kann es losgehen.

Im Gegensatz zu anderen komplexen All-in-One-Plattformen ist Inspector supereinfach und PHP-freundlich. Sie können unser Laravel- oder Symfony-Paket ausprobieren.

Wenn Sie auf der Suche nach effektiver Automatisierung, umfassenden Einblicken und der Möglichkeit sind, Warnungen und Benachrichtigungen an Ihre Messaging-Umgebung weiterzuleiten, testen Sie Inspector kostenlos. Registrieren Sie Ihr Konto.

Oder erfahren Sie mehr auf der Website: https://inspector.dev

MySQL How To Duplicate A Table – Fast Tips

Das obige ist der detaillierte Inhalt vonMySQL, wie man eine Tabelle dupliziert – schnelle Tipps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!