sql >> Database >  >> RDS >> PostgreSQL

Is de id-kolompositie in Postgresql belangrijk?

In theorie zou alles in orde moeten zijn, maar er zijn altijd scenario's waarin je code zou kunnen mislukken.

Bijvoorbeeld:

a) blind insert :

 INSERT INTO tab_name
 VALUES (1, 'b', 'c');

Een blinde invoeging is wanneer een INSERT-query niet specificeert welke kolommen de ingevoegde gegevens ontvangen.

Waarom is dit een slechte zaak?

Omdat het databaseschema kan veranderen. Kolommen kunnen worden verplaatst, hernoemd, toegevoegd of verwijderd. En als dat zo is, kan een van de drie dingen gebeuren:

  1. De query mislukt. Dit is het beste scenario. Iemand heeft een kolom uit de doeltabel verwijderd en nu zijn er niet genoeg kolommen om in te voegen, of iemand heeft een gegevenstype gewijzigd en het ingevoegde type is niet compatibel, enzovoort. Maar uw gegevens worden in ieder geval niet beschadigd en u weet misschien zelfs dat het probleem bestaat vanwege een foutbericht.

  2. De query blijft werken en er is niets aan de hand. Dit is een midden-worst-case scenario. Je gegevens zijn niet corrupt, maar het monster verstopt zich nog steeds onder het bed.

  3. De query blijft werken, maar nu worden er gegevens ingevoegd op een plek waar ze niet thuishoren. Je gegevens raken beschadigd.

b) ORDER BY oridinal

SELECT *
FROM tab
ORDER BY 1;



  1. Verbeteringen in voortgangsrapportage in PostgreSQL 12

  2. Fix Msg 8114 "Fout bij het converteren van gegevenstype varchar naar numeriek" in SQL Server

  3. Identiteitszaad resetten na het verwijderen van records in SQL Server

  4. Grondbeginselen van tabeluitdrukkingen, deel 11 - Aanzichten, overwegingen bij wijzigingen