sql >> Databasteknik >  >> RDS >> PostgreSQL

Är id-kolumnposition i Postgresql viktig?

I teorin borde allt vara bra, men det finns alltid scenarier när din kod kan misslyckas.

Till exempel:

a) blind insert :

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

En blind infogning är när en INSERT-fråga inte anger vilka kolumner som tar emot infogade data.

Varför är detta en dålig sak?

Eftersom databasschemat kan ändras. Kolumner kan flyttas, döpas om, läggas till eller tas bort. Och när de är det kan en av minst tre saker hända:

  1. Frågan misslyckas. Detta är det bästa scenariot. Någon tog bort en kolumn från måltabellen och nu finns det inte tillräckligt med kolumner för infogningen att gå in i, eller så har någon ändrat en datatyp och den infogade typen är inte kompatibel, eller så vidare. Men din data blir åtminstone inte skadad, och du kanske till och med vet att problemet finns på grund av ett annat felmeddelande.

  2. Frågan fortsätter att fungera och inget är fel. Det här är ett mellan-värsta scenario. Din data är inte korrupt, men monstret gömmer sig fortfarande under sängen.

  3. Frågan fortsätter att fungera, men nu infogas en del data någonstans där den inte hör hemma. Din data blir skadad.

b) ORDER BY oridinal

SELECT *
FROM tab
ORDER BY 1;



  1. Tvinga Oracle att returnera de N-ÖVNA raderna med SKIP LÅST

  2. CTE och födelsedagsparadoxen

  3. Hur man använder Oracle PLSQL-tabeller (associativ array eller index-för-tabell)

  4. LÖST:Microsoft Office 365 version 2009 kan bryta din databasapplikation