2016-06-19 14 views
5

Sono molto principiante in SQL, quindi mi dispiace se questa domanda è primitiva.
Ho appena iniziato a seguire il tutorial di http://www.w3schools.com, quindi ho scaricato il database "Northwind" per provare a lavorarci su e utilizzando la console pgAdmin 3 per accedere al DB. Ho solo cercato di comando semplice per scegliere una colonna della tabella, ma dà lo stesso messaggio seguente con una colonna da qualsiasi tabellaSQL - SUGGERIMENTO per fare riferimento a una colonna

LINE 1: select City from Customers; 
         ^
HINT: Perhaps you meant to reference the column "customers.City". 

vorrei chiedere c'è qualche cosa di sbagliato nel mio comando? e come risolverlo?

Grazie

+1

w3school è stato violato? (Ricevo tutti i tipi di assurdità) – wildplasser

+1

@wildplasser Penso che l'URL corretto sia http://www.w3schools.com –

+0

@wildplasser mi dispiace è stato il mio errore di battitura. Ho modificato questo link come ha detto Martin. – philippos

risposta

10

Quando importate i nomi delle colonne del database "Northwind" sono stati importati in CamelCase - l'importazione deve aver aggiunto le virgolette doppie agli identificatori di colonna alle query create table.

Questo è piuttosto sfortunato, in quanto ciò potrebbe causare che si avrebbe dovuto citarli anche in tutte le query, come:

select "City" from customers; 

Per rimanere sano di mente vi suggerirei a rename all columns to lower case. In questo modo non importa in quale caso si utilizza, poiché Postgres converte automaticamente tutti gli identificatori non quotati in minuscole. Quindi tutto ciò funzionerebbe:

select city from customers; 
select City from Customers; 
SELECT CITY FROM CUSTOMERS; 
+0

Grazie @Tometzky! Ha funzionato dopo aver rinominato tutte le colonne. Tuttavia, ti chiederei se hai qualche riferimento sull'importazione di un database in modo da mantenere tutti i nomi come erano in origine. – philippos

0

Non c'è niente di sbagliato nella ricerca. Sembra che il tuo tutorial ti chieda di seguire sempre la prassi di anteporre il nome della tabella alle colonne a cui fai riferimento. In realtà, questo è richiesto solo quando altrimenti causerebbe un'ambiguità (ad esempio se si fa riferimento a due tabelle, entrambe con una colonna Città).

+0

Sembra una funzione postgres non un tutorial. http://pgeoghegan.blogspot.co.uk/2015/11/suggesting-corrected-column.html Immagino che qualcosa abbia a che fare con la distinzione tra maiuscole e minuscole, in quanto 'customers' vs' Customers' salta fuori ma non ho abbastanza familiarità con Postgres per essere sicuro –

Problemi correlati