Beter: Het is niet nodig om eerste de database zo te configureren dat foute/onmogelijke data ook daadwerkelijk wordt afgekeurd. Fout == fout en levert dus ook een foutmelding op.
In MySQL kun je echter ook een goed geconfigureerde server, dus in strict-mode, weer onderuit halen, tijdens een sessie kun je namelijk weer een brakke mode instellen en dus de data vrij eenvoudig naar de bliksem helpen. In PostgreSQL bestaat dit soort fratsen niet, gelukkig niet. Hopelijk neemt MySQL nog eens afscheid van deze ellende, het vereist alleen wat moed. 9 van de 10 huidige MySQL-applicaties zullen niet meer werken, er zullen vele, vele bugs in de SQL van de applicaties aan het licht komen. En daar worden gebruikers en ontwikkelaars niet vrolijk van...
Dit werkt uitstekend in MySQL:
SELECT 1 + 'onzin';
In PostgreSQL wordt het gewoon afgekeurd, integers en text kun je niet bij elkaar optellen.
Dit is slechts 1 van de vele, vele, vele problemen met MySQL. Data in MySQL is helaas per definitie onbetrouwbaar, je kunt het alleen vertrouwen wanneer je het kunt vergelijken met de originele input en alle bewerkingen die er vervolgens op zijn gedaan. Maar ja, dan zul je dus nog in een andere database moeten bijhouden wat de originele input was en welke bewerkingen er ondertussen op de data zijn uitgevoerd. Dat maakt de MySQL-database natuurlijk volkomen ovebodig.
Hier een fraai overzicht van een deel van de problemen met MySQL:
Yapf.net.
Daarnaast kent PostgreSQL meer functionaliteit dan MySQL, maar of je daar gebruik van maakt, dat ligt aan je eigen eisen en wensen. Daarvan kun je niet zomaar stellen dat de ene beter is dan de andere, het is gewoon anders.
Hét probleem van MySQL is de dataintegriteit, die kan onder geen enkele omstandheid worden gegarandeerd. En leg dat maar eens uit aan je klanten: "Ja de data is corrupt, ja dat weten we, maar dat komt door MySQL. Daar kunnen wij dus niks aan doen.". Ben benieuwd wat er gebeurt wanneer klanten de softwarebouwers aansprakelijk gaan stellen voor de geleden schade, met MySQL kiezen de bouwers bewust voor dit soort risico's.