Tytuł wpisu mówi o bardzo oczywistej rzeczy. Jednak jak się okazało dzisiaj, bardzo łatwo o tym zapomnieć lub pominąć to. Akurat pisałem schema.xml dla projektu w Symfony i przy jednym z wpisów pominąłem parametr size dla atrybutu typu varchar. Miałem trzy tabele, jedna “główna” i dwie, które były z nią powiązane kluczem obcym, jednocześnie nie były powiązane bezpośrednio między sobą. Jakież było moje zdziwienie, gdy główna się stworzyła, jedna zależna też a przy drugiej dostawałem uparcie komunikat MySQL, że mam błąd składniowy i nr błędy to 1064. Przewertowałem google w poszukiwaniu rozwiązania, sprawdziłem czy nie naruszam jakiś słów zarezerwowanych i nic. W końcu zacząłem linijka po linijce sprawdzać definicje SQL tych dwóch “podobnych” relacji. I w końcu trafiłem na:
`title` VARCHAR,
PRIMARY KEY (`gss_id`),
Co było oczywistą drogą do piekła i męk, jakie przeżyłem.
Wniosek jest prosty i oczywisty: zanim zaczniemy winić wszystkich dookoła a szczególnie developerów MySQL, warto 1000 razy poszukać błędy u siebie!