2012-11-10 5 views
0
=============== 
| id | name | 
=============== 
| 1 | Ali | 
| 2 | ahmd | 
| 3 | jada | 
| 4 | nisr | 
| 5 | sara | 
| 6 | mona | 
| 7 | dana | 
=============== 

Je veux réordonner ID lorsque je supprime une ligne comme id = 5 et comme ça =>Comment supprimer et insérer le numéro de série dans MYSQL et réorganiser le numéro de série?

=============== 
| id | name | 
=============== 
| 1 | Ali | 
| 2 | ahmd | 
| 3 | jada | 
| 4 | nisr | 
| 5 | mona | 
| 6 | dana | 
=============== 

aussi le même cela si j'insérer une ligne avec id = 2 name = Yafa , comment commander à nouveau la table sans dupliquer une valeur et d'être comme ça

| id | name | 
    =============== 
    | 1 | Ali | 
    | 2 | yafa | 
    | 3 | ahmd | 
    | 4 | jada | 
    | 5 | nisr | 
    | 6 | sara | 
    | 7 | mona | 
    | 8 | dana | 
    =============== 

Répondre

1

Ceci est en supposant que vous savez toujours ce que « id » vous ajoutez ou supprimez. (De plus, vous travaillez toujours avec une seule ligne à la fois).

Pour une suppression:

DELETE FROM tableName WHERE id = 5; 

UPDATE tableName 
SET id = id-1 
WHERE id > 5; 

Pour un insert:

UPDATE tableName 
SET id = id + 1 
WHERE id >= 2; 

INSERT INTO tableName (id, name) VALUES (2, 'yafa'); 

BTW, pourquoi voudriez-vous faire cela. Définissez la colonne 'id' comme étant un champ d'auto-incrémentation et laissez la base de données s'occuper d'elle. Vous souciez-vous si vous sautez des numéros?

+0

mon projet est un livre, et l'id lié au nombre de pages.so si je veux supprimer une page, je dois recompter la page pour remplir le vide de la page supprimée –