Heey,

Korte vraag:
Ik probeer limit te doen in Postgresql

SELECT *
FROM berichten
ORDER BY id DESC
LIMIT 0,10


Maar dan krijg ik de volgende error:

ERROR:  LIMIT #,# syntax is not supported
HINT:  Use separate LIMIT and OFFSET clauses.

Naar mijn weten hoort deze wel gewoon te werken in mysql maar die heeft andere regels.
Weet iemand hoe ik dit werkend kan krijgen in Postgresql.
Heb al aantal dingen geprobeerd maar wil maar niet lukken

Groeten, Vincent




Mysql heeft andere standaarden maar accepteer Mysql ook de echte mysql standaard? Dus de dingen die je gebruikt zoals bij postgresql? De time/date fucnties etc?
Andere standaarden... Poep is inderdaad ook een standaard en daar zit standaard ook een bijzonder luchtje aan. (ik hou het netjes ;) ) Met MySQL gaat dat net zo, er is een `standaard` MySQL-dialect (met een bijzonder luchtje) en je hebt de ANSI-standaard. Laat andere databases nu ook de ANSI-standaard gebruiken (niet helemaal 100%, maar het komt in de buurt), dan is het dus wel zo handig om je aan de standaard te houden.

Vandaar dat het zo klote is dat menig prutser zijn SQL-avonturen begint met MySQL, nadat je jezelf hebt opgewerkt tot MySQL-kenner, ken je nog steeds geen SQL! Begin je bv. met PostgreSQL, dan leer je de ANSI-standaard met wat pgSQL-uitzonderingen en kun je zo met een andere database aan de slag.

Mocht je een held zijn en toch SQL willen leren met MySQL, stel hem dan in op ANSI-SQL, dan lijkt het tenminste nog ergens op. Doe je dat niet, vergeet dan het SQL-dialect dat je met MySQL hebt geleerd, dat gaat echt niet werken op een andere database.

Voor de juiste functienamen in pgSQL pak je even de handleiding er bij, die hoor je altijd voor je neus te hebben. In hoofdstuk 9 worden alle functies besproken, ook de datum- en tijdfuncties.
Ook wel mooi hoe het in de handleiding van mysql staat:

For compatibility with PostgreSQL, MySQL also supports the LIMIT row_count OFFSET offset syntax.


Heeft alleen PostgreSQL dan deze notatie? Lijkt mij niet als pgSQL zich wel houd aan de ANI standaard...
@Crispijn: Ook pgSQL houdt zich niet 100% aan de ANSI-standaarden, maar komt daar wel dicht in de buurt. pgSQL-dialect (laat ik het zo even noemen) wordt ook beter ondersteund door andere databases, bv. Oracle en MySQL (zie het voorbeeld van de OFFSET).

pgSQL is voor vele databases een voorbeeld en dankzij de open source zijn de goede ideeen van pgSQL redelijk eenvoudig te implementeren.

Reageren