<b>Jag undrar om någon kan hjälpa mig med detta felmeddelande i MySQL, jag har ett fält som koden sett till att värdena är unika i, men när jag försöker ändra till autoincrement verkar det som att MySQL reagerar som om det fanns dubletter, men den visar mig inte var ?! Vad försöker du egentligen göra med CONCAT_WS("-", 10)? Vad är det för mening med att försöka sortera raderna efter en konstant (10)? Den är ju samma för alla rader... hey, det var phpMyAdmin som gav mig den där frågan för att visa mig var felet låg =) jag skrev den inte själv.. Ja, du får inte ha en post som är 0 eftersom MySQL börjar räkna från 1 och uppåt. men.. om det funkar - är risken då att den uppdaterar värdena på vad som redan finns sparat i tabellen på fältet userid? Det får ju... katastrofala följder minst sagt... Nej, den rör inte värden som finns där. Dessutom, om du har designat databasen bra, vilket jag misstänker att du inte gjort, kommer den genom constraints att kunna ändra i andra relaterade tabeller när du ändrar i huvudtabellen. när jag väl fixat bort nollan så gick det bra att sätta auto-increment.går inte att ändra till auto-increment
</b>
Fel
SQL-fråga:
ALTER TABLE `users` CHANGE `user` `user` INT( 10 ) NOT NULL AUTO_INCREMENT
MySQL sa:
#1062 - Duplicate entry '1' for key 1
<b>och när man väljer att visa (antar att den då skall visa var felet ligger) så kommer det bara...</b>
Fel
SQL-fråga:
SELECT *
FROM `users`
WHERE CONCAT_WS( "-", 10 ) = "1"
ORDER BY 10
LIMIT 0 , 30
MySQL sa:
#1054 - Unknown column '10' in 'order clause'
<b>det verkar ju som att problemet ligger i order by värdet, så om man kör frågan utan det...</b>
SELECT *
FROM `users`
WHERE CONCAT_WS( "-", 10 ) = "1"
LIMIT 0 , 30
<b> så returneras inga rader. ??? </b>Sv: går inte att ändra till auto-increment
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws
Sen att du inte kan ändra fältet user till AUTO_INCREMENT vet jag inte vad det beror på. Alla AUTO_INCREMENT fält jag gör är i alla fall UNSIGNED så testa med det.
Annars kan du testa köra en
<code>
SELECT COUNT(0) antal FROM users GROUP BY user ORDER BY antal DESC
</code>
Sen kontrollerar du om högsta returnerade värdet är lika med ett. Är det inte det så finns det kopior av samma id.Sv: går inte att ändra till auto-increment
Sv:går inte att ändra till auto-increment
Jag körde frågan du skrev men det var mycket riktigt en etta på varje rad (eller i båda ändarna, eller hur man ska uttrycka det).
Kan det spela in att jag har en post med värdet 0? Men databasen får ju inte ändra på de värden som redan finns, allt jag vill är ju att den skall fortsättningsvis öka på värdet i det fältet med ett för varje kommande post... Sv: går inte att ändra till auto-increment
Så ändra det så kanske det fungerar.Sv:går inte att ändra till auto-increment
Sv: går inte att ändra till auto-increment
Svårt att förklara om du inte redan vet det, men sök på CONSTRAINT på Google så hittar du nog en del artiklar och exempel om det. Väldigt fin finess "by the way" ;)Sv:går inte att ändra till auto-increment