PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Важна ли е позицията на колоната с идентификатор в Postgresql?

На теория всичко трябва да е наред, но винаги има сценарии, когато кодът ви може да се провали.

Например:

а) blind insert :

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

Сляпо вмъкване е, когато заявка INSERT не посочва кои колони получават вмъкнатите данни.

Защо това е лошо?

Тъй като схемата на базата данни може да се промени. Колоните могат да бъдат премествани, преименувани, добавяни или изтривани. И когато са, може да се случи едно от поне три неща:

  1. Заявката е неуспешна. Това е най-добрият сценарий. Някой е изтрил колона от целевата таблица и сега няма достатъчно колони, в които да влезе вмъкването, или някой е променил тип данни и вмъкнатият тип не е съвместим или така нататък. Но поне данните ви не се повредят и може дори да знаете, че проблемът съществува поради съобщение за грешка.

  2. Заявката продължава да работи и нищо не е наред. Това е средно-лошият сценарий. Данните ви не са повредени, но чудовището все още се крие под леглото.

  3. Заявката продължава да работи, но сега някои данни се вмъкват някъде, където не им е мястото. Данните ви се повреждат.

б) ORDER BY oridinal

SELECT *
FROM tab
ORDER BY 1;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сложна заявка на Postgres

  2. Как да мигрираме съществуваща Postgres таблица към разделена таблица възможно най-прозрачно?

  3. Вертикално мащабиране на PostgreSQL

  4. Множество бази данни в docker и docker-compose

  5. как да поставим префикс на низ преди последователност, генерирана от postgresql?