sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL, SQL-tilstand:42601

Dette konstruerer en anonym sammensat værdi:

select (1, 'a');

For eksempel:

=> select (1, 'a');
  row  
-------
 (1,a)
(1 row)

=> select row(1, 'a');
  row  
-------
 (1,a)
(1 row)

Bemærk, at det er en enkelt sammensat værdi, ikke flere værdier.

Fra den fine manual:

8.16.2. Sammensat værdiinput

For at skrive en sammensat værdi som en bogstavelig konstant skal du omslutte feltværdierne inden for parentes og adskille dem med kommaer. Du kan sætte dobbelte anførselstegn omkring en hvilken som helst feltværdi og skal gøre det, hvis den indeholder kommaer eller parenteser.
[...]
ROW udtrykssyntaks kan også bruges til at konstruere sammensatte værdier. I de fleste tilfælde er dette betydeligt enklere at bruge end streng-bogstav-syntaksen, da du ikke behøver at bekymre dig om flere lag af citering. Vi har allerede brugt denne metode ovenfor:

ROW('fuzzy dice', 42, 1.99)
ROW('', 42, NULL)

ROW søgeord er faktisk valgfrit, så længe du har mere end ét felt i udtrykket, så disse kan forenkles til:

('fuzzy dice', 42, 1.99)
('', 42, NULL)

Rækkekonstruktørerne afsnit kan også være af interesse.

Når du siger dette:

INSERT INTO circuit (id_circuit, description, date_start, date_end, speed,
length, duration)
SELECT (...)
FROM segment seg, wgs cir where seg.id = 13077

din SELECT klausul har kun én kolonne som hele (...) udtryk repræsenterer en enkelt værdi. Løsningen er simpelthen at droppe disse parenteser:

INSERT INTO circuit (id_circuit, description, date_start, date_end, speed, length, duration)
SELECT seg.id_segment, ..., (seg.date_end - seg.date_start)
FROM segment seg, wgs cir where seg.id = 13077



  1. Installation af Ubuntu 18.04 til SQL Server 2019 på virtuel maskine ved hjælp af VMware Workstation

  2. Lagret procedure - returner identitet som outputparameter eller skalar

  3. Hvordan vælger man kolonner fra en tabel, som ikke har nulværdier?

  4. Backend-versionen understøttes ikke til at designe databasediagrammer eller tabeller