22 Ocak 2023 Pazar

Don’t Use Double Quotes in PostgreSQL For Table and Column Names

SQL Açısından
SQL açısından her şey case insensitive. Büyük küçük harf duyarlı değil. Açıklaması şöyle
The SQL standard states that SQL queries and identifiers (e.g., table names) aren’t case sensitive.  Thus, there’s no difference between
select id, email from people;
and
SELECT ID, EMAIL FROM PEOPLE;
Ancak PostgreSQL her şeyi küçük harf haline getiriyor. Yani tablo isimleri küçük harf haline geliyor

Double Quotes 
Açıklaması şöyle
Whereas single quotes in PostgreSQL are used to create a text string, double quotes are used to name an identifier without changing its case.
Özeti şöyle
The bottom line, then, is to avoid using double quotes when creating anything.  Actually, you should avoid double quotes when retrieving things as well — otherwise, you might discover that you’re trying to retrieve a column that PostgreSQL doesn’t believe exists.
Örnek
Bir seferinde JDBC ile şöyle bir cümleyi çalıştırırken hata aldım. Çünkü tablo ismi çift tırnak ileydi ve mapping değişkeninin değerinin hepsi küçük harf değildi
"SELECT * FROM \"" + mapping + "\" LIMIT 0"
Örnek
Elimizde şöyle bir SQL olsun. Bundan sonra bu tabloya artık sadece "People" şeklinde erişebilirim
CREATE TABLE "People" (
 id SERIAL NOT NULL,
 email TEXT NOT NULL,
 PRIMARY KEY(id)
);
Şu hata verir
SELECT * FROM people;

ERROR: relation "people" does not exist


Hiç yorum yok:

Yorum Gönder