WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Har mysql blivit mer strängt på sistone? (https://www.wn.se/forum/showthread.php?t=21495)

totoo 2007-05-26 15:46

Halloo... Jag har börjat lira med senaste versionen av mysql från att bara tidigare ha arbetat med lite äldre versioner. Nu ser jag att några av mina sql-frågor som har fungerat prima förr (även på tre stora webbhotell).

Jag får nu error på insert-frågor som skippar fält om fälten inte har defaultvärden. Förut har strängar bara blivit tomma och tal har fått en nolla. Men så är det alltså inte längre - eller är det en inställning som justerar detta?

kullervo 2007-05-26 16:02

...och datum har fått värdet 0000-00-00 (läs förklaringen i manualen för ett skratt). Det borde MySQL fått motsatsen till Nobelpriset för.

Om man inte sätter ett default-värde blir default NULL. Försöker man lagra NULL i en kolumn som inte tillåter NULL-värden slängs givetvis ett fel. Nu kan du äntligen ha koll på vad dina INSERTs egentligen gör.

totoo 2007-05-26 16:12

Hmm, men alltså jag får felet "Field 'loginStamp' doesn't have a default value" vilket jag tolkar som att mina insert måste ha med alla fält som parametrar som saknar defaultvärden.

Därför antar jag att automatiska noll-värden inte delas ut längre.

totoo 2007-05-27 01:58

Men det är alltså på så vis att mysql har blivit mer strängt? Eller är det en inställning? Behöver jag skriva om mina sqlfrågor/göra om mina tabeller eller vad är det som gäller? För i så fall är det ju bra att ha lite framförhållning och göra om ungefär varenda site jag har släppt ut - så att inte alla mina siter ramlar i bitar om webbhosten uppdaterar mysql...

*ryser*

melin 2007-05-27 08:15

sätt default värden när du skapar din tabell... så torde det lösa sig

totoo 2007-05-27 16:35

ja jo - men som jag sa - om detta nu är ett krav från mysqls sida så känns det som att man kanske måste uppdatera tabellerna i varenda site jag har online (flera kunder och f.d. kunder) för annars kan siterna ramla ihop om deras webbhotell uppdaterar mysql.... Det är där skon klämmer.

Men om det finns inställningsmöjligheter kring detta så kanske webbhotellen ger fan i att fucka för sina kunder. :)

- Eller så har jag missat något, men det är därför jag frågar.

kullervo 2007-05-27 17:19

Citat:

Originally posted by totoo@May 27 2007, 15:35
Men om det finns inställningsmöjligheter kring detta så kanske webbhotellen ger fan i att fucka för sina kunder. :)
Har man valt att bygga en applikation som förlitar sig på icke-standardiserade MySQL-egenheter så bör man vara beredd på att man kommer behöva ändra i koden för kunna köra andra RDBMS:er eller t.om. framtida versioner av MySQL. MySQL kommer säkert bli en riktigt bra RDBMS på sikt men en hel del kommer säkert ändras tills dess. Vill man vara på den säkrare sidan så kan man försöka hålla sig till SQL-standard eller åtminstonde de facto-standard. Det går att köra MySQL i striktare mode (http://dev.mysql.com/doc/refman/5.0/...-sql-mode.html)

I.o.m. att jag har dålig koll på MySQL så vågar jag fortfarande inte påstå att det är just det här som är "problemet" för dig. Surfa in på URL:en ovan och kika om du inte kan välja en lösare mode för att du inte ska behöva ändra i koden.

totoo 2007-05-27 17:58

naturligtvis har du rätt i att man ska följa standarden, men jag kände inte till att man inte fick lämna fält för att bli automatiskt "odefinierade" (0 eller tomt). Mitt misstag naturligtvis (förutsatt att det är ett brott mot standarden - som det antagligen är).

Det är inte det att jag använder alla medel för att slippa ändra i koden, utan tanken var snarare om min tidigare mysql-version har haft automatiskt snällt läge per default och att mysql har ändrats i senare versioner och har strikt läge som start.

Om det vore så - och att det är problemet, då kan man anta att webbhotellen avsiktligt har satt mysql på de snälla inställingarna och kommre behålla dem där.

Det var så jag resonerade. Det är inte så att jag försöker att undvika att följa standarden. :)

Tack för svaret iaf, jag ska spana igenom din länk ikväll. Jag ska sätta mysql så strikt det går - för så kodar jag precis allt annat.

Osiris 2007-05-30 22:21

Känner igen "strängheten" då jag senast igår inte fick göra insert till tinytext över huvud taget. Försökte bara knö in en sträng på 10-20 tecken men den klagade på att det inte fick plats :(
Gjorde jag om fälten till varchar så lugnade den ner sig, dock har jag inte löst mediumtext riktigt ännu...

Förslag?


Alla tider är GMT +2. Klockan är nu 15:38.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson