Renomer un champs sql

Résolu
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008 - 31 mai 2007 à 22:03
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 1 juin 2007 à 00:35
salut,
j'ai une table nomé tab ou il ya un champs id a insertion automatique mais j'ai suprimer quelque ligne alors comment renomer l'id de 1 au dernier champs

$query="UPDATE tab SET id='$i' ";
mysql_query($query)or die('error');

merci

12 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 mai 2007 à 23:44
Salut

max@max-laptop:~$ su
Password:
root@max-laptop:/home/max# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.0.38-Ubuntu_0ubuntu1-log Ubuntu 7.04 distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> USE test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

mysql> CREATE TABLE test(id INT UNSIGNED AUTO_INCREMENT, autre INT, PRIMARY KEY(id));
Query OK, 0 rows affected (0.23 sec)

mysql> INSERT INTO test(autre) VALUES(1), (2), (3), (4), (5), (6), (7);
Query OK, 7 rows affected (0.06 sec)
Records: 7  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM test;
+----+-------+
| id | autre |
+----+-------+
|  1 |     1 |
|  2 |     2 |
|  3 |     3 |
|  4 |     4 |
|  5 |     5 |
|  6 |     6 |
|  7 |     7 |
+----+-------+
7 rows in set (0.00 sec)

mysql> DELETE FROM test WHERE id=4;
Query OK, 1 row affected (0.15 sec)

mysql> DELETE FROM test WHERE id=3;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE TEMPORARY TABLE tmp (id INT UNSIGNED auto_increment, autre int, primary key(id));
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO tmp(autre) (SELECT autre FROM test ORDER BY id)
    -> ;
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM tmp
    -> ;
+----+-------+
| id | autre |
+----+-------+
|  1 |     1 |
|  2 |     2 |
|  3 |     5 |
|  4 |     6 |
|  5 |     7 |
+----+-------+
5 rows in set (0.00 sec)

mysql> DELETE FROM test;
Query OK, 5 rows affected (0.00 sec)

mysql> INSERT INTO test(id, autre) (SELECT id, autre FROM tmp);
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM test;
+----+-------+
| id | autre |
+----+-------+
|  1 |     1 |
|  2 |     2 |
|  3 |     5 |
|  4 |     6 |
|  5 |     7 |
+----+-------+
5 rows in set (0.00 sec)

Voila, j'espere que ca repond a ta question

une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 mai 2007 à 22:32
Salut

renomer l'id de 1... ca ne veut rien dire... on dit decrementer l'id, ou diminuer de 1 la valeur de l'id...

$query="UPDATE tab SET id=id-1";
mysql_query($query)or die('error');

une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
31 mai 2007 à 22:34
1
2
3
4
5
6
....................
merci
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 mai 2007 à 22:58
allez, on va continuer, pour te faire plaisir :

7
8
9
10
11
12
13
14
15
16
...

(ps : si tu veux un message plus debile, s'adresser a mon assistant)

(mettre uniquement du code ca peut suffir pour une reponse, mais des chiffres, c'est un peu leger... tu pourrais au moins dire si ma solution marche ou non, et pouquoi...)

une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
31 mai 2007 à 23:06
ah oui tu as meme un assistant les gens bien
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
31 mai 2007 à 23:18
personne ne veut m'aider par ordre croissant
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 mai 2007 à 23:24
j'ose meme pas relever.... ce que je voulais dire c'est que nous donner une suite de chiffres sans sens, ca n'aide pas a la resolution de ton probleme...

une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
31 mai 2007 à 23:26
et quesqui peut m'aider aresoudre mon probleme
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 mai 2007 à 23:26
"personne ne veut m'aider par ordre croissant"=> ca encore ca ne veut rien dire...

pose ta question.... dis moi si mon code convient... si il ne convient pas, dis pourquoi....

une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
31 mai 2007 à 23:30
les id sont avec des trous 1,2,8,9,12,56.........
je veux les rendre 1,2,3,4,5,6,7,8,9........
avec une boucle surement mais je ne sais pas

merci
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
1 juin 2007 à 00:25
tous ce que il falait faire c'est de suprimer le champs id et le recréer
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 juin 2007 à 00:35
Salut

avec deux alter table, ca peut peut-etre fonctionner... faut voir...

quelques details :
-plus tu donnes de details plus vite t'as la reponse, le temps que tu perds a ecrire, on le gagne quand on cherche a te comprendre, sans compter les erreurs que l'on fait parce-que l'on t'a mal compris, ou les moments ou on a carement rien compris... ou les fausses pistes que tu aurais deja explorees ou autres...
-cette methode peut presenter des bugs lorsque tu l'appliques deux fois en meme temps, et pour une grosse table, ca peut etre tres lent, donc evite de mettre ce code ailleur que dans une partie admin ou autre chose peu solicitee, garde plutot une liste triee en decalant les ids lors de la suppression avec un code comme celui que j'ai mis tout en haut

une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0