Je souhaite réinitialiser mes identifiants de 1 à un maximum car, étant donné que je dois mettre plusieurs fois à jour une table, je risque d'avoir des ID supérieurs à la valeur maximale de la colonne ID
.
Par exemple, j'obtiens parfois l'ID 2842719402837
trop grand pour être entré dans ma colonne ID
(INTEGER, longueur 11).
J'utilise cette requête pour réinitialiser les ids de 1 au maximum un:MySQL - Erreur de réinitialisation de l'ID de 0 à
SET @num := 0;
UPDATE riepilogo SET id = @num := (@num+1);
ALTER TABLE riepilogo AUTO_INCREMENT =1;
Vous pouvez trouver ici la réponse où je suis arrivé le SQL: Click Here
Bien qu'il fonctionne parfaitement sur phpMyAdmin, ce n'est pas travailler avec PHP.
Je suis en utilisant ce code pour exécuter la requête:
$sql = "SET @num := 0;
UPDATE riepilogo SET id = @num := (@num+1);
ALTER TABLE riepilogo AUTO_INCREMENT =1;";
$result = $conn->query($sql);
if(!$result) die("MySQL Error : ".$sql."<br>Error : ".$conn->error);
Naturellement je l'ai déjà mis la variable $conn
, mais je me fais l'erreur suivante:
Erreur MySQL: SET @num : = 0; MISE À JOUR riepilogo SET id = @num: = (@ num + 1); ALTER TABLE riepilogo AUTO_INCREMENT = 1;
Erreur: Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MariaDB pour la bonne syntaxe à utiliser près de 'UPDATE riepilogo SET id = @num: = (@ num + 1); ALTER TABLE riepilogo AUTO_ 'à la ligne 2
Donc, cette requête fonctionne avec la console SQL de phpMyAdmin, mais elle ne l'exécute pas avec PHP.
Qu'est-ce que je fais de mal? Merci beaucoup!
Pourquoi ne vous utilisez SERIAL DATATYPE? Int avec autoincrement est limite trop basse. – calexandre
Quel outil php db utilisez-vous? Je crois que pour PDO vous ne pouvez pas faire plusieurs phrases, sauf si vous faites une première mise en place d'abord https://stackoverflow.com/questions/6346674/pdo-support-for-multiple-queries-pdo-mysql-pdo-mysqlnd – Lixus
Pour Facilitez-le - déplacez ce code vers une procédure stockée et appelez simplement la procédure. –