suchen
HeimDatenbankMySQL-TutorialWie kann ich bedingte Einfügungen in MySQL durchführen?

How Can I Perform Conditional Inserts in MySQL?

Bedingte Einfügungen in MySQL verstehen

Bedingte Einfügungsanweisungen ermöglichen es Ihnen, eine neue Zeile nur dann in eine Tabelle einzufügen, wenn bestimmte Bedingungen erfüllt sind. In MySQL gibt es keine spezielle Syntax für bedingte Einfügungen, aber Sie können das gleiche Ergebnis mit Techniken wie Unterabfragen und der MERGE-Anweisung erzielen.

Beispielszenario: Vermeidung doppelter Einfügungen

Stellen Sie sich ein Szenario vor, in dem Sie eine Tabelle namens x_table mit Spalten (Instanz, Benutzer, Element) haben. Die Instanzspalte ist eindeutig und Sie möchten das Einfügen doppelter Zeilen vermeiden, wenn ein bestimmter Benutzer bereits über ein bestimmtes Element verfügt.

Angenommen, Sie möchten die Zeile einfügen (Instanz=919191, Benutzer=123, item=456) genau dann, wenn es keine anderen Zeilen in x_table mit user=123 gibt und item=456.

Unterabfrage und Zeilenauswahl verwenden

Um dies zu erreichen, können Sie eine Unterabfrage verwenden, um zu prüfen, ob die doppelte Zeile vorhanden ist:

INSERT INTO x_table(instance, user, item)
SELECT 919191, 123, 456
FROM dual
WHERE NOT EXISTS (SELECT * FROM x_table
                      WHERE user = 123
                        AND item = 456)

Dual ist in dieser Aussage eine spezielle Tabelle mit nur einer Zeile (ursprünglich in Oracle zu finden und jetzt auch in MySQL verfügbar). Die Unterabfrage innerhalb der SELECT-Anweisung wählt eine einzelne Datenzeile aus, jedoch nur, wenn die Werte nicht bereits in x_table vorhanden sind.

Alternative: Verwendung der MERGE-Anweisung

MySQL Außerdem wurde in Version 8.0 eine dedizierte MERGE-Anweisung eingeführt, die eine praktische Möglichkeit bietet, bedingte Einfügungen, Aktualisierungen und Löschungen in einem einzigen Vorgang zu verarbeiten Anweisung:

MERGE INTO x_table (instance, user, item)
USING (
  SELECT 919191, 123, 456
  WHERE NOT EXISTS (SELECT * FROM x_table
                      WHERE user = 123
                        AND item = 456)
) AS new_row
ON x_table.user = new_row.user AND x_table.item = new_row.item
WHEN NOT MATCHED THEN INSERT (instance, user, item) VALUES (new_row.instance, new_row.user, new_row.item);

Die MERGE-Anweisung verwendet eine Unterabfrage ähnlich dem vorherigen Beispiel, um zu prüfen, ob die doppelte Zeile vorhanden ist. Wenn die Zeile nicht existiert (WHEN NOT MATCHED), wird eine Einfügeoperation ausgeführt.

Das obige ist der detaillierte Inhalt vonWie kann ich bedingte Einfügungen in MySQL durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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
Wie lasse ich eine vorhandene Ansicht in MySQL fallen oder ändern?Wie lasse ich eine vorhandene Ansicht in MySQL fallen oder ändern?May 16, 2025 am 12:11 AM

TodropaviewInmysql, verwenden Sie "dropviewifexistsView_name;" und tomodifyAview, verwenden Sie "creetorReplaceViewView_nameasSelect ...". WhendroppingAView, AXIZENDENDEPENTENDENSANDUSUSE "SHOWREATEVIEWVIEW_NAME;" "

MySQL -Ansichten: Welche Designmuster kann ich damit verwenden?MySQL -Ansichten: Welche Designmuster kann ich damit verwenden?May 16, 2025 am 12:10 AM

MySQLViewScaneffectivItilizedEntatternSliKeadapter, Dekorateur, Factory undobserver.1) adapterPatternAdaptsdatafromDifferentTableStoaunifiedView.2) DekoratorpatternHancesDataWithokulediel.3) FactoryPatherncreat.ProduculedFeld.3) FactoryPathertoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoration

Was sind die Vorteile der Verwendung von Ansichten in MySQL?Was sind die Vorteile der Verwendung von Ansichten in MySQL?May 16, 2025 am 12:09 AM

ViewSinMysqLarbenicialforSimplifyTyComplexQueries, Verbesserung der Sicherheit, Sicherstellung von Dataconsistenz und optimizierterformance.1) SimplifyComplexQueriesbyCapscapsThemintorusableViewViews.2) ViewSenhiteCurityByControllingDataAccess.3) TheenedatacocurityBycaprollingDataAccess.3) TheenedatacocurityBycaprollingDataAccess.3) TheenedatacocurityBycaperingDataAccess.3) TheenedatacocurityBycaperingDataAccess.3) TheenedatacocurityByCaperingDataAccess.3) TheenedatacocourityByCaprollingDataAccess.3) Theensedataco

Wie kann ich eine einfache Ansicht in MySQL erstellen?Wie kann ich eine einfache Ansicht in MySQL erstellen?May 16, 2025 am 12:08 AM

ToCreateAsimpleviewInmysql, UsethecreateviewStatement.1) definessetheviewWithCreateView_nameas.2)

MySQL Erstellen Sie Benutzeranweisung: Beispiele und gemeinsame FehlerMySQL Erstellen Sie Benutzeranweisung: Beispiele und gemeinsame FehlerMay 16, 2025 am 12:04 AM

Tocreateusersinmysql, useTheCecreateuserStatement.1) ForAlocalUser: CreateUser'LocalUser '@' localhost'ididentifiedBy'SecurePassword ';

Was sind die Grenzen der Verwendung von Ansichten in MySQL?Was sind die Grenzen der Verwendung von Ansichten in MySQL?May 14, 2025 am 12:10 AM

MySQLViewShavelimitations: 1) Sie sind supportallsqloperationen, restriktedatamanipulation ThroughviewswithjoinSuBqueries.2) Sie können sich angesehen, insbesondere mit der kompetenten Formata -Ansichten, die docrexQuqueriesorlargedatasets angezeigt werden

Sicherung Ihrer MySQL -Datenbank: Hinzufügen von Benutzern und Gewährung von BerechtigungenSicherung Ihrer MySQL -Datenbank: Hinzufügen von Benutzern und Gewährung von BerechtigungenMay 14, 2025 am 12:09 AM

OrteSermanagementinmysqlisicialforenHancingSecurityAnsuringEffizienceDatabaseoperation.1) Usecreateutertoaddusers, spezifizierende Connections mit 'localhost'or@'%'.

Welche Faktoren beeinflussen die Anzahl der Trigger, die ich in MySQL verwenden kann?Welche Faktoren beeinflussen die Anzahl der Trigger, die ich in MySQL verwenden kann?May 14, 2025 am 12:08 AM

Mysqldoes nicht imposeahardlimitontriggers, aber praktische Faktorendeterminetheireffectiveuse: 1) serverconfigurationImpactstriggermanagement;

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung