sql >> Databasteknik >  >> RDS >> Mysql

Hur man infogar flera rader i en enda SQL-fråga – Veckans intervjufråga #069

Det finns så många olika databaser i världen och många av dem använder språket SQL för sin programmering. Det är väldigt lätt att anta att om de använder SQL kan vi enkelt använda kod från en databas till en annan databas. Tyvärr är verkligheten väldigt annorlunda, inte alla skript från en databas fungerar i en annan databas. Idag kommer vi att se en mycket intressant fråga där användaren ställde en fråga om att infoga flera rader i en enda SQL-fråga.

Fråga: Skriv en SQL-kod som infogar flera rader i en enda SQL-fråga. Villkoret för detta skript var sådant att det skulle fungera i SQL Server, MySQL och PostgreSQL utan att ändra en enda radskod.

Svar: Att skriva en kod för att infoga flera rader i en enda SQL-fråga är inte en svår uppgift, men det är verkligen en utmaning att skapa ett skript som fungerar med flera databaser. Det är dock möjligt att skapa ett skript som fungerar över flera databaser.

Låt oss först skapa en exempeltabell med två kolumner i den. När tabellen har skapats infogar du tre olika rader i en enda SQL-fråga.

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;

Låt oss nu köra den här frågan i flera databaser och se resultatet.

SQL-server

MySQL

PostgreSQL

Det är allt. Detta var verkligen en mycket intressant fråga. Bara så att du vet kan du alternativt också bygga SQL-skriptet med hjälp av UNION. Men lösningen som visades i denna fråga är den nya vägen att gå.


  1. Dumpa en mysql-databas till en klartext (CSV) säkerhetskopia från kommandoraden

  2. Välj alla kolumner utom en i MySQL?

  3. Fel vid skapande av tabell:Du har ett fel i din SQL-syntax nära 'order( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id ' på rad 1

  4. Det bästa sättet att strimla XML-data till SQL Server-databaskolumner