sql >> Databáze >  >> RDS >> PostgreSQL

Je pozice sloupce id v Postgresql důležitá?

Teoreticky by mělo být vše v pořádku, ale vždy existují scénáře, kdy by váš kód mohl selhat.

Například:

a) blind insert :

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

Slepé vložení nastane, když dotaz INSERT neurčuje, které sloupce obdrží vložená data.

Proč je to špatná věc?

Protože se může změnit schéma databáze. Sloupce lze přesouvat, přejmenovávat, přidávat nebo mazat. A když jsou, může se stát jedna ze tří věcí:

  1. Dotaz se nezdaří. Toto je nejlepší možný scénář. Někdo odstranil sloupec z cílové tabulky a nyní není dostatek sloupců pro vložení, do kterých by bylo možné vložit, nebo někdo změnil datový typ a vložený typ není kompatibilní nebo tak dále. Ale alespoň se vaše data nepoškozují a možná dokonce víte, že problém existuje kvůli chybové zprávě.

  2. Dotaz nadále funguje a nic není v pořádku. Toto je střední nejhorší scénář. Vaše data nejsou poškozená, ale monstrum se stále skrývá pod postelí.

  3. Dotaz nadále funguje, ale některá data se nyní vkládají někam, kam nepatří. Vaše data se poškozují.

b) ORDER BY oridinal

SELECT *
FROM tab
ORDER BY 1;



  1. Uživatel schématu Oracle nemůže vytvořit tabulku v proceduře

  2. Povolit uživatelům přístup pouze k určitým tabulkám v mém poskytovateli obsahu

  3. MySQLi připravilo zprávy o chybách

  4. Jaký je rozdíl mezi 'YYYY' a 'RRRR' v Oracle SQL