sql >> Database teknologi >  >> RDS >> Mysql

Sådan indsætter du flere rækker i en enkelt SQL-forespørgsel – Ugens interviewspørgsmål #069

Der er så mange forskellige databaser i verden, og mange af dem bruger sproget SQL til deres programmering. Det er meget let at antage, at hvis de bruger SQL, kan vi nemt bruge kode fra en database til en anden database. Desværre er virkeligheden meget anderledes, ikke alle scripts fra en database fungerer i en anden database. I dag vil vi se et meget interessant spørgsmål, hvor brugeren stillede et spørgsmål om at indsætte flere rækker i en enkelt SQL-forespørgsel.

Spørgsmål: Skriv en SQL-kode, som vil indsætte flere rækker i en enkelt SQL-forespørgsel. Betingelsen for dette script var sådan, at det skulle fungere i SQL Server, MySQL og PostgreSQL uden at ændre en enkelt linjekode.

Svar: At skrive en kode for at indsætte flere rækker i en enkelt SQL-forespørgsel er ikke en vanskelig opgave, men det er faktisk en udfordring at skabe et script, der fungerer med flere databaser. Det er dog muligt at oprette et script, som fungerer på tværs af flere databaser.

Lad os først oprette en eksempeltabel med to kolonner i den. Når tabellen er oprettet, indsæt tre forskellige rækker i en enkelt SQL-forespørgsel.

CREATE TABLE SampleTable (ID INT, Col1 VARCHAR(100));
INSERT INTO SampleTable (ID, Col1)
VALUES (1, 'One'), (2, 'Two'), (3, 'Three');
SELECT *
FROM SampleTable;
DROP TABLE SampleTable;

Lad os nu køre denne forespørgsel i flere databaser og se resultatet.

SQL-server

MySQL

PostgreSQL

Det var det. Dette var virkelig et meget interessant spørgsmål. Bare så du ved, kan du alternativt også bygge SQL-scriptet ved hjælp af UNION. Den løsning, der blev demonstreret i denne forespørgsel, er imidlertid den nye vej at gå.


  1. MySQL InnoDB frigiver ikke diskplads efter sletning af datarækker fra tabellen

  2. 3 måder at få den første dag i måneden i SQL Server

  3. SQL Server:Sådan vælger du alle dage i et datointerval, selvom der ikke eksisterer nogen data i nogle dage

  4. Hvordan CURTIME() virker i MariaDB