Auto increment

Tags:    php

Jeg sidder pt. og retter en ca. 1000 linjer lang SQL fil med islandske pigenavne til:

INSERT INTO `navne` VALUES (1, 'Aagot', 'Islandsk', '2');
INSERT INTO `navne` VALUES (2, 'Abela', 'Islandsk', '2');
INSERT INTO `navne` VALUES (3, 'Ada', 'Islandsk', '2');
INSERT INTO `navne` VALUES (4, 'Adda', 'Islandsk', '2');
INSERT INTO `navne` VALUES (5, 'Addý', 'Islandsk', '2');

Det kan godt blive lidt træls at skulle numererer alle linjerne fra 1-1000, og det her er måske kun en brøkdel af den komplette liste.

Hvordan skal det skrives for at MySQL selv opdaterer ID feltet??

Hilsen Frank



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Jeg sidder pt. og retter en ca. 1000 linjer lang SQL fil med islandske pigenavne til:

INSERT INTO `navne` VALUES (1, 'Aagot', 'Islandsk', '2');
INSERT INTO `navne` VALUES (2, 'Abela', 'Islandsk', '2');
INSERT INTO `navne` VALUES (3, 'Ada', 'Islandsk', '2');
INSERT INTO `navne` VALUES (4, 'Adda', 'Islandsk', '2');
INSERT INTO `navne` VALUES (5, 'Addý', 'Islandsk', '2');

Det kan godt blive lidt træls at skulle numererer alle linjerne fra 1-1000, og det her er måske kun en brøkdel af den komplette liste.

Hvordan skal det skrives for at MySQL selv opdaterer ID feltet??

Hilsen Frank

du skal sætte dit id i mysql til auto_increment og primær key
derefter kan du bare skrive:
Fold kodeboks ind/udKode 

Hilsen
Jan S.



du skal sætte dit id i mysql til auto_increment og primær key
derefter kan du bare skrive:
Fold kodeboks ind/udKode 

Hilsen
Jan S.


Jeg får denne fejl..

Fejl

SQL-forespørgsel :

INSERT INTO `navne`
VALUES (

'Ada', 'Islandsk', '2'
)

MySQL returnerede:


#1136 - Column count doesn't match value count at row 1

Hilsen Frank



Alternativt kunne man bruge variabler til formålet:
SET SESSION @ID=1
INSERT INTO `navne` VALUES (@ID, 'Aagot', 'Islandsk', '2');
SET SESSION @ID=@ID+1;
INSERT INTO `navne` VALUES (@ID, 'Abela', 'Islandsk', '2');
SET SESSION @ID=@ID+1;
INSERT INTO `navne` VALUES (@ID, 'Ada', 'Islandsk', '2');
SET SESSION @ID=@ID+1;
INSERT INTO `navne` VALUES (@ID, 'Adda', 'Islandsk', '2');
SET SESSION @ID=@ID+1;
INSERT INTO `navne` VALUES (@ID, 'Addý', 'Islandsk', '2');
...

Iøvrigt kunne vil det nok være en fordel at lave en seperat tabel til nationalitet. Det sparer plads hvis du kan nøjes med at skrive nationalitetens id nummer i stedet for 'Islandsk'. Google databaser normalformer for mere info.
--
Thus, I conclude



du skal sætte dit id i mysql til auto_increment og primær key
derefter kan du bare skrive:
Fold kodeboks ind/udKode 

Hilsen
Jan S.


Jeg får denne fejl..

Fejl

SQL-forespørgsel :

INSERT INTO `navne`
VALUES (

'Ada', 'Islandsk', '2'
)

MySQL returnerede:


#1136 - Column count doesn't match value count at row 1

Hilsen Frank


Der mangler noget:
INSERT INTO `navne` (navn,nationalitet,noget) VALUES ('Ada','Islandsk','2');
..osv..

Du skal med andre ord huske at angive hvilke felter du vil have fat i.
--
Thus, I conclude



Der mangler noget:
INSERT INTO `navne` (navn,nationalitet,noget) VALUES ('Ada','Islandsk','2');
..osv..

Du skal med andre ord huske at angive hvilke felter du vil have fat i.


Det hjalp, tak for det :)

Hilsen Frank



Du skal med andre ord huske at angive hvilke felter du vil have fat i.


Hvis du XyborX ikke vil have de små point, såeh....

Hilsen Frank



t