sql >> Databáze >  >> RDS >> Oracle

Existuje způsob, jak přidat sloupec na zadanou pozici v tabulce Oracle?

Na tom opravdu záleží kde je sloupec fyzicky od vybrat vám umožní určit pořadí (logicky), ve kterém budou načteny.

A pokud používáte vyberte * což vám nedovolí upřesnit pořadí, asi byste neměli být. Existuje jen málo situací, kdy byste to měli dělat (například nástroje pro analýzu DB), většinou je lepší vybrat jednotlivé sloupce, které chcete, i když je chcete všechny. To vám umožní rychle zachytit změny schématu, abyste jim mohli přizpůsobit své programy.

V každém případě samotný SQL neposkytuje žádné záruky ohledně pořadí, ve kterém jsou sloupce vráceny, pokud explicitně vyjmenujte je. vyberte * může vám je dát dnes v pořadovém pořadí a zítra v abecedním pořadí. I když vám to konkrétní implementace umožňuje (vytvořením nové tabulky se sloupcem na „správném“ místě a zkopírováním dat napříč, nebo poskytnutím rozšíření SQL, jako je alter table T vložit sloupec C1 před C2 ), nedoporučoval bych to. Nebude přenosný do jiných implementací a preferuji, aby byl můj kód co nejvíce přenosný.

Kromě toho, co můžete zadat v SQL, by měl být DBMS schopen zcela řídit jak ukládá data. Může se stát, že váš primární klíč je složený ze sedmého a čtyřicátého druhého sloupce a může být efektivnější mít je na začátku fyzických záznamů.




  1. skript, který stahuje data ze souboru txt v klauzuli where

  2. #1060 – Duplicitní název sloupce 'id'

  3. Oracle exportuje SQL struktury databáze

  4. Databázové dotazy:Jak najít jehlu v kupce sena?